zgfp.net
当前位置:首页 >> unsignED32768 >>

unsignED32768

这要根据不同的编译器; 有些编译器上无符号整型是2字节16位,VC6.0是4字节32位; 如果是在2字节16位的编译器上的话: %d表示的是有符号输出,它不管你的变量是有符号还是无符号的 面%u是无符号整型输出的正确方法 所以,上面的输出是一个负数,...

你这是十六位机上的情况。在十六位机上unsigned的范围是0~65535,而 printf("a=%d\n", a)中的%d却要求要将a按带符号整型数输出,32768的无符号二进制数是1000 0000 0000 0000,刚好是带符号数-32768的补码,所以答案是A)。现在的int类型已扩展到...

main() {unsigned a=32768; //unsigned存储的数据范围是0~65535 int b; b=a; printf("b=%d\n",b); //所以结果是 32768 }

TC上是-1 VC上是32768 因为unsigned的32768在内存中存的是10000000 00000000,在用%d输出的时候,会把这个数认为是一个int型有符号数,而int型有符号数中只有-1在内存中也是10000000 00000000。所以是-1 而在VC上,32768是00000000 00000000 100...

根据题目的设计, 应该是16位机,即int占2字节. 这样 在赋值 m=32768=0x8000; 最高位为1 按照%d输出,会把最高位作为符号位,所以实际输出的是-32768 下面答案应该是打错了.

请问你用的是什么样的编译器: 我用的是MS-VS05.此时 由于unsigned short 表示的数值范围为 0~65535。它占用两个字节16位,并不会截断。 结果如下: 32768 请按任意键继续. . . 解释如下: 32768的二进制补码为: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0...

a本来是32位,返回a的在高16位中除了符号位之外的15位(除去符号位)。 a/65535(等价于a/2^16),即右移16位,高位补上符号位。 再继续%32768(等价于%2^15),即取低15位,不包括符号位。 然后来个类型转换,去掉符号位(其实不需要类型转换已经可...

一般情况是的。 在现在的32位计算机上int一般就是32位的。至少VC里是这样。 16位的signed short int 范围是-32768~32767 16位的unsigned short int 范围是0~65535 32位的signed long int 范围是-2^31~2^31-1 32位的unsigned long int 范围是0~2^...

名称 全称类型说明符 缩写类型说明符 位数 范围 整型 int int 16位 -32768至+32767 无符号整型 unsigned int unsigned 16位 0 至 65,535 短整型 short int short 16位 -32768至+32767 无符号短整型 unsigned short int unsigned short 16位 0 至...

无符号数存储32768的二进制码为1000000000000000(1和15个0) 转换成有符号数十,由于首位是1,认为这是一个负数,要求其补码,方法是减一取反先变成0111111111111111(0和15个1),取反后变成1000000000000000(1和15个0),值为32768,是负数...

网站首页 | 网站地图
All rights reserved Powered by www.zgfp.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com