欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

C语言--原码,补码,反码、大小端字节序存储

时间:2023-04-27

计算机中的整数有三种表示方法,即原码、反码和补码。其中负整数符号位用‘0’表示“正”,负整数用’1‘表示“负”。

对于正整数的原码、补码、反码都是相同的。

例如:

第一位“0”代表符号位,即为“正”。“1010”即为10的二进制数。

对于负整数的原码、反码、补码来讲,三者略有区别。

负整数原码:直接将二进制按照负数的形式翻译成二进制就可以,第一位符号位“1”。

负整数反码:将原码的符号位不变,其他位依次按位取反就可以得到了。

负整数补码:反码+1就得到补码。

例如:

 负整数原码变反码是切记符号位不变。

接下来进行一个简单的计算,比如:1-1

首先1-1我们可以看成1+(-1),我们分别写出1的原码、补码、反码:

00000000000000000000000000000001(正整数三者相同,所以就只写一个)

-1的原码:10000000000000000000000000000001

-1的反码:11111111111111111111111111111110

-1的补码:11111111111111111111111111111111

我们先进行原码·计算:

通过这个计算,我们可以看出结果是一个负值,而二进制“10”转化为十进制则为“2”,所以1-1由原码计算得出结果为“-2”,显然与我们知道的1-1=0结果相违背,所以原码计算不正确.

接下来试试补码进行计算: 

所以我们通过补码进行计算得出的结果为“0”,正好符合1-1=0。所以,我们计算时要用补码进行计算。 

大小端字节序存储:

大小端字节序存储分为大端字节序存储、小端字节序存储。

大端字节序存储:把一个数据的低位字节处的数据存放在高地址处把高位字节的数据放在低地址处

小端字节序存储:把一个数据的低位字节处的数据存放在低地址处把高位字节的数据放在高地址处

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。