首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

关于VC6.0中的位移操作符与标准不同

2012-09-08 
关于VC6.0中的移位操作符与标准不同本来C/C++标准中使用移位操作符之后出现的空位是填0的为什么在VC6.0中

关于VC6.0中的移位操作符与标准不同
本来C/C++标准中使用移位操作符之后出现的空位是填0的
为什么在VC6.0中的移位操作符出现空位之后填1?
我本来今天在写一个base64的加密小程序,结果发现在加密中文的时候老出错
后来才发现是移位错了

比如11010010向右移4位本来应该为00001101的
但是为什么在我的VC6.0中变成了11111101了?

什么情况?求大神解答

[解决办法]
向右移需考虑符号问题,否则就会出错,比如对-2>>1,应该等于-1,如果不考虑符号位,那成什么了?
如果你想左边补0,必须用无符号来移位。
虽然vc6不怎么标准,但也不至于出这么严重的错误,不要轻易怀疑一个东西,虽然它很老,但用了10多年了。

热点排行