由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 请问关于左移运算符的一个问题, C/C++
相关主题
C语言里的<<=是什么意思?。想转java了 求教
怎样用减法和移位代替除法为什么我觉得c++比java简单?
关于placement new有没有会自动聚合的操作符重载或宏?
请推荐一本语言方面的C++书籍Go什么时候可能支持Generic?
c++ interview: iterator 和 pointer区别?lua里面实现点乘
a[i]=i++请问在C/C++那个function可以查星期几?
operator执行顺序64位整数除法?
紧急求助—寻C++ tutor一般来说浮点数乘法和除法哪个快?
相关话题的讨论汇总
话题: 左移话题: c++话题: 运算符话题: 1001话题: signed
进入Programming版参与讨论
1 (共1页)
p*********r
发帖数: 40
1
对于signed type, 比如signed int
右移还好说,补的是符号位
但是左移的时候完全有可能把符号位正负改变啊
比如二进制的 1001, 本来是-7
1001 << 2 变成了 0100,这就是4了
好像有点不合理,比如说用移位来代替除法的时候得到的结果就会错了
究竟怎么回事呢?
p***o
发帖数: 1252
2
乘溢出,左移哪来的除法

【在 p*********r 的大作中提到】
: 对于signed type, 比如signed int
: 右移还好说,补的是符号位
: 但是左移的时候完全有可能把符号位正负改变啊
: 比如二进制的 1001, 本来是-7
: 1001 << 2 变成了 0100,这就是4了
: 好像有点不合理,比如说用移位来代替除法的时候得到的结果就会错了
: 究竟怎么回事呢?

g*********e
发帖数: 14401
3
移位就是移位 能不是代替乘除法不是移位需要take care的,而是写程序的人需要
考虑的。
1 (共1页)
进入Programming版参与讨论
相关主题
一般来说浮点数乘法和除法哪个快?c++ interview: iterator 和 pointer区别?
C++编译时输入中文出问题a[i]=i++
简单c++问题,大家练练手operator执行顺序
为什么不能成功排序紧急求助—寻C++ tutor
C语言里的<<=是什么意思?。想转java了 求教
怎样用减法和移位代替除法为什么我觉得c++比java简单?
关于placement new有没有会自动聚合的操作符重载或宏?
请推荐一本语言方面的C++书籍Go什么时候可能支持Generic?
相关话题的讨论汇总
话题: 左移话题: c++话题: 运算符话题: 1001话题: signed