一、对于有符号数 int
正数,左移直接丢弃最高位,在低位补对应个数的0;
正数,右移直接丢弃最低位,在高位补对应个数的0;
负数,左移直接丢弃最高位,在低位补对应个数的0;
负数,右移直接丢弃最低位,在高位补对应个数的1;
二、对于无符号数 unsigned int
左移直接丢弃最高位,在低位补对应个数的0;
右移直接丢弃最低位,在高位补对应个数的0,即使最高位原来是1;
三、总结
算术右移:最高位填充符号位。正数填充0,负数填充1
逻辑右移:最高位填充0
左移都是补0
参考链接:https://blog.youkuaiyun.com/test1280/article/details/79858715
本文深入解析了有符号数int和无符号数unsigned int在进行左移和右移操作时的不同行为,包括算术右移和逻辑右移的概念。详细介绍了正数和负数在移位过程中的高位补位规则。
950

被折叠的 条评论
为什么被折叠?



