前言:在32位计算机上,数据存储使用32个比特位,每个比特位可以存储一个二进制数字0或1。而在64
前言:
在32位计算机上,数据存储使用32个比特位,每个比特位可以存储一个二进制数字0或1。而在64位计算机上,数据存储则使用64个比特位。因此,即使是一个简单的数字,在32位计算机上也需要使用32个比特位(二进制位)来存储。本文将以32位计算机为例进行说明。
规则:原码是将数值直接按照正负数的形式转换成二进制得到的结果。反码是将原码的符号位保持不变,其他位依次按位取反(0变为1,1变为0)得到的结果。补码是反码加1得到的结果。将补码转换回原码有两种方法:第一种是将补码减1得到反码,然后将反码除符号位外按位取反得到原码;第二种方法是取反后加1或减1再取反。如果你是第一次接触原码、反码、补码,可能会觉得第一种方法更容易理解,即补码减1得到反码,然后将反码除符号位外按位取反得到原码。但你可能不太容易接受第二种方法。接下来,我将通过一个例子帮助大家理解第二种方法。
取反后加1得到的结果与原码相同,因此这种方法也是可行的。
对于整数来说:在内存中,数据的存储实际上存储的是它的补码;数据的计算也是使用它的补码。为什么会这样呢?
我们通过一个例子来解释。
计算1 - 1
小练习:下面的代码结果是()A.>B.
#include登录后复制int i;int main(){ i--; if (i > sizeof(i)) { printf(">\n"); } else { printf("<\n"); } return 0;}
菜鸟下载发布此文仅为传递信息,不代表菜鸟下载认同其观点或证实其描述。
版权投诉请发邮件到 cn486com#outlook.com (把#改成@),我们会尽快处理
Copyright © 2019-2020 菜鸟下载(www.cn486.com).All Reserved | 备案号:湘ICP备2022003375号-1
本站资源均收集整理于互联网,其著作权归原作者所有,如有侵犯你的版权,请来信告知,我们将及时下架删除相应资源