C语言中为什么int a=-1 printf("%o",a)等于177777
来源:百度知道 编辑:UC知道 时间:2024/05/15 08:22:24
有谁可以把转换的过程说一下详细点小弟是菜鸟
可以看出,你的计算机的整型是双字节长度的,即16位
-1的整形数据,用补码存于计算机中,是16个1,即1111111111111111,换算成十六进制是FFFF,再换算成八进制便是177777了,十六进制和八进制都没有直接的“负”号的,都是用补码,所以你用“%O”,这个八进制格式符来格式整型的-1时,输入就成了177777了
很久不用c语言了,%o是无符号整数吗?如果是那样就是自动吧负数的符号位作为数据显示了
具体的情况需要找资料了,呵呵,不好意思,不能给你确切的解答,等高手来看看吧
%o格式指令将printf()函数输出一个八进制的整数.
负数用补码表示
C语言中为什么int a=-1 printf("%o",a)等于177777
C语言中 指针int *a=10;和int *a; *a=10;的区别
C语言中 int a=9,b=5; 那么表达式b=(a=4)/(b=a)的值为什么是1?
c语言int *p=a解释
c语言中,int是什么意思?
C语言中 设 int a[]={1,2,3,4,5}, *p=a 则数组元素的正确表示是()
C语言:int a=2; a+=a-=a*a 执行后.......
C语言:int a=12; a+=a-=a*a 执行后..得到多少???...
C语言中:int k=0;while (k=1)k++;while循环的次数是什么?为什么
c语言int a[10] 10是什么意思