[求助]求按位取反的问题!
#include "stdio.h" main() { int a,b; a=234;
printf("\40: The a's 1 complement(decimal) is %d \n",~a);
getch(); } a=234,取反先转换成二进制是11101010,按位取反应是00010101,十进制是21,为何输出-235?
#include "stdio.h" main() { int a,b; a=234;
printf("\40: The a's 1 complement(decimal) is %d \n",~a);
getch(); } a=234,取反先转换成二进制是11101010,按位取反应是00010101,十进制是21,为何输出-235?
[此贴子已经被作者于2005-4-4 9:13:31编辑过]
int 是两个字节;即16位,当然不能按8位计算了. 对于整型变量为16位的编译器 234 :0000000011101010 取反后:1111111100010101 所以位-235 |