为什么c语言中-1以八进制输出是37777777777

而为什么十进制输出是-1,那输出的3777777777转成十进制怎么得到-1,肯定得不了啊!37777777777转我十进制不是很大一个数吗?怎么会是-1呢... 而为什么十进制输出是-1,那输出的3777777777转成十进制怎么得到-1,肯定得不了啊!
37777777777转我十进制不是很大一个数吗?怎么会是-1呢
展开
 我来答
wangweiipp
推荐于2017-10-08 · TA获得超过7043个赞
知道大有可为答主
回答量:4280
采纳率:0%
帮助的人:2766万
展开全部
八进制无负数的概念。负数只是为了表示10进制数而出现的,而计算机内部就没有负数的概念,它就是几个二进制的位而已。八进制以及十六进制的存在是为了观察二进制位的! 而37777777777是通过二进制进行的转换,实际并无负数,只是这样表现出来。
tatakautsubasa
2010-03-17 · 超过23用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:61.9万
展开全部
首先,你的机器是32位机,也就是1个字占32个bit位,这样一个字最多可表示的十进制数字为 2^32 = 4294967296。然后在该字中存放-1,这样该字的值为
4294967295 转换为8进制就是3777777777
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
SoulGuideMentor
2020-02-13 · TA获得超过4088个赞
知道大有可为答主
回答量:3045
采纳率:30%
帮助的人:248万
展开全部
从上面看你的编译器里的int是占两个字节!!
-1的补码是这么算出来的:
(0000
0000
0000
0001)取反=1111
1111
1111
1110
1111
1111
1111
1110
+
1
=
1111
1111
1111
1111
而1111
1111
1111
1111化成8过制就是
177777
当int
以%d输出的话
1111
1111
1111
1111
就是以有符号十进制的形式显示也就是:-1
当int
以%o输出的话
1111
1111
1111
1111
就是无符号的八进制形式显示也就是:177777
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
焦博简03r
2010-03-17 · TA获得超过8785个赞
知道小有建树答主
回答量:1186
采纳率:0%
帮助的人:702万
展开全部
额,你要学过补码就清楚了
若是早期的turbo c中以2个字节存储一个标准整型数
-1应该是以1111 1111 1111 1111来存储的,你焕化成八进制就是
377777
而你所说的27777777777编译器是以一个4字节,即32位来表示标准整型数的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaixingui2012
推荐于2017-10-12 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6373万
展开全部
在计算机中,有符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。
在计算机系统中,整型数值一律用补码来存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。

原码:首位为符号位,其余位是数值的二进制形式,
如:10(D)=0 0001010(B) -10(D)=1 0001010(B)
反码:正数的反码与原码相同,负数的反码为:原码的符号位不变,其余位按位取反,即:1变0,0变1,
如:1 0001010(-10原)的反码为1 1110101
补码:正数的补码与原码相同,负数的补码为反码加1,
如:1 0001010(-10原)的补码为1 1110101(-10反)+1=1 1110110

在计算机中,一个int类型整数占四个字节,32位。所以,
-1的原码为:1 0000000 00000000 00000000 00000001
其反码为:1 1111111 11111111 11111111 11111110
其补码为:1 1111111 11111111 11111111 11111111
转换成8进制数时,从右向左,每三位一组(符号位也看作一个数),显示为8进制数,即为:
11 111 111 111 111 111 111 111 111 111 111=37777777777
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式