您的位置:首页 > 其它

在进行位操作的时候,一定要注意有符号和无符号数之间的转换。

2018-01-03 19:31 351 查看
比如unsigned long long a = 0;

char b = 0x80;

a = (unsigned long long)b;

这样a的值是一个很大的数,除非你这样做,

a = (unsigned long long)(b & 0xff);

原因是当b与0xff做与运算时,系统会分配一个int类型的临时变量存储结果,这样把int再转换为unsigned long long时就没有问题了,因为最高位不再是1。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: