移位运算是什么(c语言里的移位运算怎么算啊)

本文目录
c语言里的移位运算怎么算啊
15用2进制表示是:
00001111(1字节),
0000000000001111(2字节),
...
左移2位后是:
00111100(1字节),
0000000000111100(2字节),
...
都是60。
因为最小单位是字节。
C语言中位移位运算符
c语言位运算符包括 位逻辑运算符 和 移位运算符。
位逻辑运算符:&按位与,|按位或,^按位异或,~取反
移位运算符:《《左移,》》右移
-----------------------------------------------------------------------
&按位与运算符:二进制中运算,0&0=0,0&1=0,1&0=0,1&1=1,相当于布尔型的与运算
|按位或运算符:二进制中运算,0|0=0,0|1=1,1|0=1,1|1=1,相当于布尔型的或运算
^按位异或运算符:二进制中运算,0^0=0,0^1=1,1^0=1,1^1=0,0与0位异或等于0,1与1位异或等于0,1和0异或等于1
~取反运算符,二进制中运算:~1=0,~0=1,非1等于0(非真得假)非0等于1(非假得真)。
《《左移运算符:运算规则:把“《《“左边的运算数的各二进制位全部左移若干位,移动的位数由“《《“右边的数指定,高位丢弃,地位补0。可以实现乘法运算,二进制0000011《《2得二进制00001100.
》》右移运算符:运算规则:把“》》“左边的运算数的各二进制位全部右移若干位,移动的位数由“》》“右边的数指定。有符号的数右移时符号也随着右移;是正数的话在最高位补0,是负数的话,符号位为1,最高位补0还是补1决取于计算机系统的规定。移入0的称为“逻辑右移“,移入1的称为“算术左移”。很多系统规定为补1,即“算术右移”。右移运算可以实现除法的功能,右移1位相当于该数除以2,右移n位相当于该数除以2的n次方。
-------------------------------------------------------------------------
运算符 优先级 运算符类型
& 8 双目
| 10 双目
^ 9 双目
~ 2 单目
《《 5 双目
》》 5 双目
---------------------------------------------------------------------------
移位运算符怎么移的
bytemask=intmax《《8;
intmax 按2进制向左移动 2进制八位,右边补0,左边高位溢出丢弃
intmax=4294967195;16进制 0xffffff9b
左移2进制八位, 就是左移16进制2位, 16进制 0xffff9b00
打印出的10进制就不太容易看。
左移1位实际上等于 乘2,左移8位就是 乘了 8 次 2。
高位溢出丢弃,丢弃多少,要看你的 uint 是几位的。

更多文章:
majority of(the majority of 和 a majority of的区别以及用法例句)
2026年10月11日 07:40
another time(another time和other time的区别)
2026年10月11日 05:00






