C语言中的原、反、补码

 我来答
瓮雁宇赋
2019-06-29 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:32%
帮助的人:921万
展开全部
c语言中,所有的整型数据实际存储的都是补码
要计算补码,先要知道原码的概念,原码也就是一个10进制数的二进制表达方式,比如100的原码为1100100。
补码的计算原则为:
1
对于无符号数以及有符号数中的正数,其补码就是原码本身;
2
对于有符号数中的负数,其补码为真值绝对值的反码加一,其中反码为原码按位取反。
针对负数举例说明:
-100在用char型(8位)表示时,其补码可以按照如下流程计算。
1、
100的原码为01100100
2、按位取反,得到反码为10011011
3、将反码加1,
即10011011+1
=
10011100。
于是-100的补码表示就是10011100,也就是0x9c(16进制)。
人世未谙333
2019-05-09 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.3万
采纳率:29%
帮助的人:1077万
展开全部
int,
字长为2
字节共16位二进制数,
数的范围是-32768~32767
-32768的二进制是11111111
11111111负数最高位为1.
32767的二进制是01111111
11111111
正数最高位为0.
正数的原码和补码一样。
负数的补码是原码取反加1.

32768=01111111
11111111+1
=10000000
00000000
-32768=10000000
00000000
取反011111111
11111111
+1
10000000
00000000
结果和你书上看到的一样,说明书是对的,哈哈。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式