C++有符号和无符号变量在使用过程中的区别(sign and unsign)

来源:互联网 发布:淘宝子账号认证步骤 编辑:程序博客网 时间:2024/04/29 02:59

有符号和无符号变量的赋值操作有时会发生莫名其妙的事情,先看下面的代码:

上面的代码写的有问题吗?有,那么应该如何写呢?

修改:将char *buf 修改为 unsign char *buf

 

原因是什么呢:

1.在进行“|”运算时首先char会被转换为int,如果char为负数,则前三个空的字节会补充"1"。

2.在前三个字节都是1时进行的“|”运算就不起作用了。

 

总结说明:

1.char|int时,char的前面三个字节有时会补充0,有时会补充1。应避免这样使用。

2.unsign char|int时,前面会补充0。

 

 

原创粉丝点击