算数左移、逻辑左移、移位操作 >>和>>>

目录
前言1. 二进制表示2. 正数移位3. 负数移位4. 逻辑移位 和 算数移位

前言
  在进行移位操作时,对于无符号的左移和右移总是比较容易理解,无符号数的二进制表示也比较容易理解,但在进行有符号数的左移和右移时就可能产生一些问题。
1. 二进制表示
已正负3为例:(为表示方便,高三个字节省略)
原码:
+3:0000 0011
-3:1000 0011

反码:负数符号位不变,其余取反
+3:0000 0011
-3:1111 1100

补码:正数不变,负数在反码基础上 +1
+3:0000 0011
-3:1111 1101

  原码是最容易让人理解的形式,即便学过了微机原理,过了一段时间,我还是不自觉的会认为原码就是计算机所存储的形式,但实际是以补码形式存储。   之所以出现补码是为了计算机方便处理,再不用判断符号位(让逻辑电路判断符号位比较复杂)的情况下:

算数左移、逻辑左移、移位操作 >>和>>>最先出现在Python成神之路

版权声明:
作者:Mr李
链接:https://www.techfm.club/p/19964.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>