C语言中整数在内存中的储存形式

 我来答
naobing111
推荐于2016-07-08 · TA获得超过418个赞
知道小有建树答主
回答量:150
采纳率:0%
帮助的人:184万
展开全部
无符号的整数和有符号的正整数都是用二进制原码来表示,而负整数则是使用补码来表示(补码的算法:负数的绝对值的原码安位取反再加一)。举个例子来说吧:
假设机器使用的是16位来存储整数。
10 的存在形式是0000000000001010
-10的存在形式:
(1) |-10| = 10 ,10原码为0000000000001010
(2)安位取反: 1111111111110101
(3)加1: 1111111111110110(最终结果)
创作者f7fYZxqL1N
2019-10-18 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:28%
帮助的人:848万
展开全部
整数在内存中是以补码的形式存放,其中正整数的源码反码补码形式相同;负整数的原码反码补码形式不同,负数的反码:符号位不动,其余各位对原码取反,他的补码是它的反码+1.
-8
<------->
1000
0000
0000
1000
原码
-8
<------->
1111
1111
1111
0111
反码
-8
<------->
1111
1111
1111
1000
补码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创作者ql7QexXoJt
2020-02-11 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:28%
帮助的人:1058万
展开全部
对于正数:原码、反码、补码,都一样为它本身二进制表示;
对于负数:原码为其本身二进制表示,反码相对于原码来说符号位不变其他位按位取反,补码在反码的基础上再加一。
整数在内存中以补码的形式贮存。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gamespy1991
2011-01-06 · TA获得超过1262个赞
知道小有建树答主
回答量:1636
采纳率:0%
帮助的人:1230万
展开全部
无符号整数用源码,有符号的正数用源码,负数用补码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式