问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言中的原码,反码,补码有什么作用,是用来做什么的

发布网友 发布时间:2022-05-23 02:16

我来回答

3个回答

热心网友 时间:2023-10-10 05:30

整数,存储计算机中,就是补码。

但是,C 语言,是高级语言。

那么,用高级语言编程,就不需要讨论计算机内部的存储形式。

因此,C 语言和补码,是完全不相关的两码事。

在 C 语言中,讨论补码(原码反码),显然是外行。


热心网友 时间:2023-10-10 05:30

计算机中的整数类都是用补码来存储的。
而C语言中不需要关心原反补码!追问那c中int的取值范围是怎么算出来的

追答int占四个字节32位
可表示2^32个数
无符号数0 --- 2^32 -1
有符号数-2^31 --- 2^31 -1

热心网友 时间:2023-10-10 05:31

(1)原码表示法
原码表示法是机器数的一种简单的表示法。其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示。设有一数为x,则原码表示可记作[x]原。
例如,x1=
+1010110
x2=
一1001010
其原码记作:
[x1]原=[+1010110]原=01010110
[x2]原=[-1001010]原=11001010
原码表示数的范围与二进制位数有关。当用8位二进制来表示小数原码时,其表示范围:
最大值为0.1111111,其真值约为(0.99)10
最小值为1.1111111,其真值约为(一0.99)10
当用8位二进制来表示整数原码时,其表示范围:
最大值为01111111,其真值为(127)10
最小值为11111111,其真值为(-127)10
在原码表示法中,对0有两种表示形式:
[+0]原=00000000
[-0]
原=10000000
 
(2)补码表示法
机器数的补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的。设有一数x,则x的补码表示记作[x]补。
例如,[x1]=+1010110
[x2]=
一1001010
[x1]原=01010110
[x1]补=01010110

[x1]原=[x1]补=01010110
[x2]
原=
11001010
[x2]
补=10110101+1=10110110
补码表示数的范围与二进制位数有关。当采用8位二进制表示时,小数补码的表示范围:
最大为0.1111111,其真值为(0.99)10
最小为1.0000000,其真值为(一1)10
采用8位二进制表示时,整数补码的表示范围:
最大为01111111,其真值为(127)10
最小为10000000,其真值为(一128)10
在补码表示法中,0只有一种表示形式:
[+0]补=00000000
[+0]补=11111111+1=00000000(由于受设备字长的*,最后的进位丢失)
所以有[+0]补=[+0]补=00000000
 
 
(3)反码表示法
机器数的反码可由原码得到。如果机器数是正数,则该机器数的反码与原码一样;如果机器数是负数,则该机器数的反码是对它的原码(符号位除外)各位取反而得到的。设有一数x,则x的反码表示记作[x]反。
例如:x1=
+1010110
x2=
一1001010
[x1]原=01010110
[x1]反=[x1]原=01010110
[x2]原=11001010
[x2]反=10110101
反码通常作为求补过程的中间形式,即在一个负数的反码的未位上加1,就得到了该负数的补码。
例1.
已知[x]原=10011010,求[x]补。
分析如下:
由[x]原求[x]补的原则是:若机器数为正数,则[x]原=[x]补;若机器数为负数,则该机器数的补码可对它的原码(符号位除外)所有位求反,再在未位加1而得到。现给定的机器数为负数,故有[x]补=[x]原十1,即
[x]原=10011010
[x]反=11100101
十)
    
1
 
[x]补=11100110
 
例2.
已知[x]补=11100110,求[x]原。
分析如下:
对于机器数为正数,则[x]原=[x]补
对于机器数为负数,则有[x]原=[[x]补]补
现给定的为负数,故有:
[x]补=11100110
[[x]补]反=10011001
十)
1
 
[[x]补]补=10011010=[x]原
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
推荐一款在卧室听的音响,最好带CD,带收音机,可插U盘,价格1000以内!尽量... 求问,近几年还会有类似于声之形、你的名字这样的动漫电影么w_百度... 苦学包括什么 北京世纪百奥科技有限公司怎么样? 居住证积分需要哪些材料 上海办居住证积分需要什么资料 居住证积分有哪些材料 如何建立良好的家庭情感氛围 如何让家庭氛围更快乐 如何营造一个欢乐轻松的家庭氛围呢? 走协议出让的土地需要政府收储吗? 福州比较出名的有哪几个街道 福州江滨大道的沿途机构 请问福州的江滨大道跟江滨东大道一样吗? 计算机中补码的意义和算法 什么时候用补码?补码的作用是什么?为什么在计算的时候还要+1或-1? 江滨大道属于肇庆市的哪个区? 土地被县土管局收储,却十几年未被开发,生产队有权收回吗? 机关单位与收储中心签订土地补偿协议是土地转让还是划拨性质 签订国有土地收购储备协议对股票是利好吗 无线网络解锁万能钥匙 手机用wifi解锁钥匙解锁的热点还收费么 现在一般烧什么菜好? 烧点什么菜 烧什么菜好吃 最容易烧的菜有哪些? 【简单说说】秦始皇兵马俑的艺术特色 秦始皇兵马俑有何惊叹世人之处? 去公益性岗位有什么好处 公益性岗位好处是哪些! 公益性岗位的意义 从北府路东站到江滨大道怎么坐公交车,最快需要多久 三明市江滨大道属于那个区 福州市台江区江滨大道融侨中心离地铁较近的是哪个站? 傍晚的江滨大道是人们乘凉的好时间(修改病句)谢谢 从江滨大道到火车站怎么坐公交车,最快需要多久 作文春游江滨大道4oo字数 移动和联通的号码可以重复么? 从石埠收费站出来后如何上江滨大道 移动和小区联通号码可以用吗? 江滨大道辅路绿灯过去算闯红灯吗 福州的北江滨路全长是多少?(从金牛山到马尾造船厂) 比如15957945490,联通和移动都是这个号码可以同时用吗? 福州市仓山区万达到台江区江滨大道188号世茂外滩国际俱乐部怎么走 移动手机号和联通手机号可通用吗? 江门江滨大道,从白沙公园出发,怎么走,百度地图没有的,请指条路行下,谢谢 联通可以和移动用同一个手机号吗 移动卡和联通卡可以用同一个微信不 可以用联通卡和自己移动卡绑定在一起吗?交话费是不是只交一个号码两个一起用? 我现在用移动,如果我换了联通还可以用原来的号码吗? 中国移动可以和中国联通关联号码吗