99问答网
所有问题
C语言,为什么%o和%x输出的都是无符号数,为什呢不能有负数
如题所述
举报该问题
推荐答案 推荐于2017-12-16
不是说不能有负数,如果使用%x和%o输出时,应该先把你的数据转为二进制的形式,然后再转为
8进制
或者是
16进制
,这样转出来的数是不会带+-号的,而是根据实际在内存中存放的数据来显示
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/WjjWvzWzezXWjt7OWeX.html
相似回答
C语言
中的正
负数
及其
输出
答:
输出时,无符号数可以使用八进制、十进制和十六进制格式
。但对于有符号数,printf不支持输出负的八进制或十六进制数。不同类型的整数在不同进制下输出,对应不同的格式控制符,但%o和%x对有符号数的输出实际上是因为最高位为0的巧合。代码示例中,虽然输出结果看似异常,但实际上涉及整数在内存中的存储...
%o
%u
%x
这种
输出
为
无符号
的整形,怎么判断其数的正负?
答:
首先
无符号数
没有负值,如果真想知道其有符号十进制数正负,可以先将二进制数写出来,然后判断,第一位是1则是正数,是0则
是负数,
后面的按原码或补码规则写即可.
C语言有关负整型数据输出的
问题
答:
正好反了.输出-1是用的补码
,%o是
以8进制输出.
%x是
以16进制输出.还有个%u是以
无符号
输出(所输出的数值是以你的机器字长决定的.例:16位机
输出的是
2的16次方减1).
C语言
中
输出的%o
格式
为什么
只能
是无符号
形式呢?
答:
o为结构体的输出格式;
结构体本来就是无符号形式的
!
C语言
中
%X,%O输出是什么
?
答:
用在scanf函数中,%X,%O表示%X对应的第一个变量接收一个十六进制
数,
再接收一个
逗号不
赋给任何变量,最后接收一个八进制数赋给%O对应的变量。字母大小写均可。用在printf函数中
,%X,%O
中的%O控制符是错误的,因为有的编译器只认
%o不
认
%O,
就是说在printf中是分大小写的。%X对应输出大写字母的十六...
c语言
两个16进制
负数
a,b,相加
为何输出
是 printf(“-
%X
",-(a+b))
答:
%d整型输出 %ld长整型
输出
%o
以八进制数形式输出整数
%x
以十六进制数形式输出整数 %c用来输出一个字符 另外
,%X
没有
符号
位,就是说不能表示
负数,
因此两个负数相加时,需要先将结果变为正数,并在输出时在前面填一个负号,所以是 -%X"欢迎追问!
求助一道
C语言
题目
答:
d
,%o,%x,
%u分别表示用有符号十进制、
无符号
八进制、无符号十六进制、无符号十进制形式输出。关于a的输出很容易理解,不说了。关于b的输出,因为-2在计算机中是以其补码的形式存储的,即32位由高到低分别是32个1和1个0,因为%o.%x,%u都是以无符号形式
输出的,
所以最高位符号位也作为有效的数值位...
C语言有关负整型数据输出的
问题
答:
你用%d输出,它定义的%d就是输出正负号和十进制整数值。你用
%o输出,
它定义就是不管什么负号不负号的把八进制输出出来。然而printf没有定义带
符号
八进制的输出格式字串而已(因为没有人习惯看到一个负的八进制或十六进制字符,只是感兴趣除外)其实,没有必要去琢磨printf到底是怎么
输出的,
在你能看到的...
如何理解
C语言输出
类型
答:
2、
%o
-以八进制形式
输出无符号
整数(不输出前缀O);3、
%x
-以十六进制形式输出无符号整数(不输出前缀OX);4、%u-以十进制形式输出无符号整数;5、%f-以小数形式输出单、双精度实数;6、%e-以指数形式输出单、双精度实数;7、%g-以%f%e中较短的输出宽度输出单、双精度实数;8、%c-输出单个字符;9、%s...
大家正在搜
C语言 输出不同的数
c语言怎么输出特殊符号
c语言中进制用什么符号表示
c语言怎么输出数组
c语言且或非的符号
c语言中或的符号
c语言中符号的含义
c语言怎么输出空格
c语言输出函数
相关问题
C语言中,unsigned不应该是无符号数吗?为什么还是可以...
C语言中原来一个负数,我输出时用%x想输出为16进制,但%x...
我在C语言里面输入一个无符号整数,为什么输出是有符号的?见补...
C语言中"%X,%O"输出是什么?
C语言中无符号整数变量赋负整数为什么不报错,而且打印这个数也...
C语言无符号整形和无符号短整型显示负数结果为什么不一样?
c语言%o和%x问题
如图C语言程序,这个定义一个无符号数a,但是赋了一个-666...