10 = 1010
〜10 = 0101 // 5十进制
#include<stdio.h>int main(){ unsigned int b =10; b= ~b; printf("bitwise %d\n ",b); return 0;}解决方法 不要忘记你正在翻转每一位,包括最重要的位(有符号变量的符号位).将变量定义为无符号不会更改二进制表示,只会更改程序使用它的方式.
因此,当您将数字打印为签名(%d)时,您将获得-11.
10 = 0x0000000A (10)~10 = 0xFFFFFFF5 (-11 signed / 4294967285 unsigned)
要打印为未签名使用:
printf("bitwise %u\n ",b);总结
以上是内存溢出为你收集整理的为什么10的按位补码是-11全部内容,希望文章能够帮你解决为什么10的按位补码是-11所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)