在C语言中>>是什么意思? 如temp=~((temp>>4)|0xF0);
5个回答
展开全部
位运算符:| 按位或 >>按位右移 ~ 按位取反
假定 int a=26,b=8;机器字长为8
则a|b的意思是将a,b换做二进制,a=00011010,b=00001000
从低位到高位依次按位做或运算,a|b=00011110;
>>是位右移,如果a>>2,则表示将a换做二进制,然后向右移动2位,左边补0。其规则是符号位被用来填充右移后左边空出来的位。向右移出的位被丢弃。此时a符号位为0,所以左边补0。
~是按位取反,就是将每个二进制位换做相反的位,0换做1,1换做0
假定 int a=26,b=8;机器字长为8
则a|b的意思是将a,b换做二进制,a=00011010,b=00001000
从低位到高位依次按位做或运算,a|b=00011110;
>>是位右移,如果a>>2,则表示将a换做二进制,然后向右移动2位,左边补0。其规则是符号位被用来填充右移后左边空出来的位。向右移出的位被丢弃。此时a符号位为0,所以左边补0。
~是按位取反,就是将每个二进制位换做相反的位,0换做1,1换做0
展开全部
右移表达式的位,保持符号不变。
result = expression1 >> expression2
参数
result
任何变量。
expression1
任何表达式。
expression2
任何表达式。
说明
>> 运算符把 expression1 的所有位向右移 expression2 指定的位数。expression1 的符号位被用来填充右移后左边空出来的位。向右移出的位被丢弃。例如,下面的代码被求值后,temp 的值是 -4:-14 (即二进制的 11110010)右移两位等于 -4 (即二进制的 11111100)。
var temp
temp = -14 >> 2
result = expression1 >> expression2
参数
result
任何变量。
expression1
任何表达式。
expression2
任何表达式。
说明
>> 运算符把 expression1 的所有位向右移 expression2 指定的位数。expression1 的符号位被用来填充右移后左边空出来的位。向右移出的位被丢弃。例如,下面的代码被求值后,temp 的值是 -4:-14 (即二进制的 11110010)右移两位等于 -4 (即二进制的 11111100)。
var temp
temp = -14 >> 2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实 编程者就是想 获取 temp的高4位并取反的值,
比如 temp之前是 0010xxxx, --->转换后是 0000 1101
比如 temp之前是 0010xxxx, --->转换后是 0000 1101
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
| 按位或 >>按位右移 ~ 按位取反
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
右移操作,每移动一位相当于除以一次2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询