main () {unsigned a=32768; printf("a=%d尀n",a); }

求详解
2024-11-26 14:43:44
推荐回答(4个)
回答1:

这要根据不同的编译器;
有些编译器上无符号整型是2字节16位,VC6.0是4字节32位;
如果是在2字节16位的编译器上的话:
%d表示的是有符号输出,它不管你的变量是有符号还是无符号的
面%u是无符号整型输出的正确方法
所以,上面的输出是一个负数,即-32768
存储时机器码是这样的1000000000000000一共16位,然后用%d输出就是-32768,用%u输出就正常

回答2:

unsigned 是无符号整型变量,就是只能为正数的整数
程序先定义a并初始化,在输出,很好理解啊
楼上怎么弄的?不应该是a=32768 吗?

回答3:

运行结果:-32768

回答4:

-32768