网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月10日漏签0天
c语言吧 关注:798,972贴子:4,358,470
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 22回复贴,共1页
<<返回c语言吧
>0< 加载中...

求助关于数字的存储

  • 只看楼主
  • 收藏

  • 回复
  • 十里坡的剑神
  • 低能力者
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这里以一个字节为范围。目前知道有原码,补码一说。
比如一个字节8个比特位,可表示的数字范围是-128~+127
那么-128在计算机中是以原码还是补码的形式储存的呢(我知道是以补码也算的)
-128原码:1000 0000 反码:1111 1111 补码:1 000 0000
假设是补码储存,因为一个字节只能存储8个比特位,那么1 0000 0000的存储结果只能是0000 0000,这样识别出来就是0了
所有计算机里是原码存储?


  • 十里坡的剑神
  • 低能力者
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
上面有个地方少些个0,补码1 0000 0000


2025-08-10 18:23:09
广告
不感兴趣
开通SVIP免广告
  • 十里坡的剑神
  • 低能力者
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
但是我查了,好像都是用补码来存储的,那么-128和0的补码不重复了吗?
0的原码补码都是0000 0000
-128原码1000 0000,补码0000 0000(前面有个1溢出了)
这样计算机怎么识别呢


  • GTA小鸡
  • 吧主
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
目前所有的计算机都使用补码表示整数,使用原码的计算机已经在上个世纪灭绝了。


  • 香菜味包子
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我是傻逼


  • GTA小鸡
  • 吧主
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
从原理来解释:
补码的英文是two's complement,它的字面意思是“2的补集”,这个翻译才最贴合补码的含义:补码是原数关于2^n的补数,也就是补码 = 2^n + 原数
因此对于原数-128来说,补码=256-128=128=10000000。
所以补码运算实际上是原数mod 2^n的同余运算,正数和负数的补码刚好构成一个环,加法和减法可以使用同样的逻辑。
所谓“补码是原码符号位以外取反+1”,这实际上是补码原理总结的运算规则,并不是补码的原理。


  • ~ZXP4~
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
推荐你看一看《深入理解计算机系统(CSAPP)》的第二章。


  • 草酱
  • 彩虹面包
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
看到补码那串晦涩的公式,不是去死记,要思考为什么是这样的。
补码存在的意义就是消除减法,这样CPU里面就不需要减法电路了,大大降低了成本。
对于CPU来说所有的数都是正数,只能进行加法运算,负数和减法只是我们主观认为是。
人的视角:-1 + 1 = 0
CPU视角:255 + 1 = 256 = 0 (超出8位丢弃进位)


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 22回复贴,共1页
<<返回c语言吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示