main(){ char x=0xFFFF; printf("%d \\n",x--); }
char型不能直接拿来运算,这里输出是整型,所以报错,返回值是-1.好像记得越界或者什么错误的返回值都是-1,-1在这里不代表计算结果。
main(){ char x=0xFFFF; printf("%d ",x--); }
main () { char x=0xFFFF; printf ("%d\\n",x--); } 结果是-1,为什麼? %d是整数输出格式,也就是说将0xffff作为整数输出。而char型别的0xFFFF在记忆体中的储存根整数-1在记忆体中一样因此。。。明白了麼 main(){char x=0xFFFF;printf("%d\\n",x--);}答案为-108.我想知道算的...
char x=0xFFFF;printf("%d\\n",x--)的输出结果是?我怀疑答案,所以请求...
0xFFFF 是16进制,转换成二进制为11111111 11111111 。char 类型是一个字节,明显溢出,只能取低八位(即后面的八个1),char是有符号字符型,11111111转化成十进制就是-1。
main(){ char x=0xFFFF; printf("%d \\n",x--); }
0xFFFF是十六进制表示,转换为二进制为1111 1111 1111 1111,%d是将其用int型输出。二进制“1111 1111 1111 1111”的第一位(最高位)为1可知其是负数(最高位为0表示非负数),并且是用补码表示。由补码还原为原码的原则是:除符号位外,末尾减1后,各位取反:1111 1111 1111 1111 末尾减1:11...
计算机c语言中 char x=0xFFFF; printf("%d\\n",x--); 结果是多少
char应该用%c格式输出,但是ASC码没有定义到0xFFFF这个位置 或者类型改为int,x=65535,输出65534 一定要如题输出的话是-1
#include<stdio.h> main() {char x=0xFFFF; printf("%d",x);}
char类型只占一个字节,无符号取值范围是 0 ~ 255, 有符号数是 -128 ~ 127。0xffff赋值给x产生溢出(1111 1111 1111 1111),所以x的整数值是-1。手头没资料无法详细解答,楼主如果想详细的弄清楚这里面的种种细节、来龙去脉,强烈建议你看《深入理解计算机系统》这本经典之作,第二章中对此有...
c语言这段码为何会输出-1?
1. char x=0xFFFF;指定值超出char表示的范围,因此高位数据被丢失,得到x=0xFF;2. printf("%d\\n", x--);这句在这里可以理解为:printf("%d\\n", x);和x=x-1;两条语句 在执行printf时会对x进行符号扩展【char表示有符号数据,所以会进行符号位扩展】,因为x的符号位为1,所以整个数据...
...main() {unsignod int x=0xffff; printf("%u\\n",x)}
0xffff是十六进制 0xffff=(Decimal)65535 即十进制的65535 printf("%u\\n",x)就是输出x的值然后换行 所以会输出65535再换行
这输出为什么是—1?
1.char x=0xFFFF.char是单字节,也就是8位,而0xFFFF是4*4=16位。当把一个16位赋给只能存储8位的char时,问题就出现了,这时就会发生截断现象(truncation)。这时编译器一般会发出警告。当发生截断后,原来的16位只剩下8位。也就是x=-1;2.x--。x--的使用是:先使用x的值,后进行--...
C语言中 int x=oxffff; printf("%u\\n",x) x的值
应当用 0xffff 第一个是数字0 不是 字母 o u是按 10进制 无符号 整型 输出数值。0xffff 得 65535