sql设置默认值:位操作时的疑惑

来源:百度文库 编辑:高校问答 时间:2024/05/02 00:18:48
#include<iostream.h>

void main()
{
int x = 7;
x = x&0xfe;
cout << x << endl;

}
这时候输出:x = 6

#include<iostream.h>

void main()
{
char c = 'b';
c = c&0xfe;
cout << c << endl;

}
为什么这个输出还是字符b,而不是字符a呢? 位运算已经将末尾的零抹掉了,怎么输出结果没变呢?

b的ASCII是0x62,末尾本来就是零,所以输出不变

7的情况:按2进制展开:
0000 0111 0x07
1111 1110 0xfe &
--------------------
0000 0110 0x06

'b'的情况 实际是ASCII码0x62
0110 0010 0x62
1111 1110 0xfe &
---------------------
0110 0010 0x62

这下LZ明白了吧呵呵

后面就是个零,运算后还是零呀