不懂什么是补码——华为面试被毙

本文介绍了计算机系统中数值表示的基础——补码的概念及其计算方法。对于正数,补码即为原码;而对于负数,则需先取反再末位加1得到补码。补码的使用简化了计算机中的算术运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    听闻某学长被内推到华为面试,结果因为答不上补码是什么而被毙。旷世悲剧啊。让我们来稍微回顾一下下。

 

    在计算机系统中,数值用补码来表示(存储)。这样做的好处有很多。计算机采用补码运算非常方便(计算机中数据受字长的限制,数据的运算属于有模运算,并且对运算结果能方便地按模丢掉),而且可使减法运算由加法运算实现。

 

    我们不管补码的标准化定义(始终觉得那是数学家做的事情),直接来看补码的求法。

 

    正数的补码,即是正数的原码;

    负数的补码,符号位不变,数值部分取反,然后末位加1.

 

    x=0.100101,

        则[x]原=0.100101

        故[x]补=0.100101

   

    x=-0.100101,

        则[x]原=1.100101(负数原码:符号位为1,数值部分取原数的绝对值)

           [x]反=1.011010(负数反码:符号位为1,数值部分按位取反)

        故[x]补=1.011011(负数补码:符号位为1,数值部分在反码的基础上末位加1)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值