在做学校作业(移位)中的收获,移位中的规则

对于int整数,其在计算机中的存储位数为32位,今天做到移位的题目,发现自己对移位有着很错误的认知,下面列出例子希望能校正自己的认识。

对于正数,设x=0x7000001

原数:01110000 00000000 00000000 00000001

向右移一位

移后:00111000 00000000 00000000 00000000

向左移两位

移后:11100000 00000000 00000000 00000010

可以得到结论:正数向右移位时,空出的位置由0代替填充,挤出去的数不管;正数向左移位时,可能出现正负变换(具体根据移后最高位判断),同时空出的位置由0代替填充。

对于负数,设x=0xf1000000

原数:11110001 00000000 00000000 00000000

向左移四位

移后:00010000 00000000 00000000 00000000

向右移两位

移后:11111100 01000000 00000000 00000000

可以得到结论:负数向右移位时,空出的位置由1替代,符号不变,挤出去的数不管;负数向左移位时,可能出现正负变换(具体根据移后最高位判断),同时空出的位置由0代替填充。

                       

上一篇:pandas进行条件筛选和组合筛选


下一篇:牛批!终于有人把JVM内存分配机制讲明白了!超详细解析!