细学C++之补码

本文详细介绍了C++中二进制补码的概念,包括正数和负数的补码转换。对于正数,补码即为常规的二进制转十进制方式;而对于负数,补码是保留符号位,其余位取反再加1。文章还补充了右移运算时的逻辑右移和算术右移的区别,提醒避免对有符号数进行右移操作。
摘要由CSDN通过智能技术生成

关于上一篇细学C++之位运算符中,也许会有许多人不理解为什么【1111111111110101 ==>-11】,这个-11是怎么来的呢,这一篇为您揭晓。

这就涉及到了二进制转换为十进制的问题,这个大家应该是很熟的,毕竟在高中或者大学都是有教学的,但是在计算机中的二进制,是要更深入一点,我们将这种转换称为计算补码。

在计算机中计算补码有两种情况:

         1.对正数

                      对于正数来说,就是我们常见的二进制转换为十进制的计算,直接按位计算权重和,如下图

对于01010这个二进制码从右往左按照从0开始递增的计数操作壹壹对应作为其下标,后用对应位置上的位(基本上是1)乘以2的下标次方,将它们的和相加就得到了该二进制的补码

        2.对负数

                      对于负数来说,也只是在对正数计算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值