【C语言】补码

补码是什么

一个数在计算机中是以二进制的形式存放的,补码的发明是为了表示带符号数(整型)进行方便的运算

补码的转换

正是符号需要占有一格,所以带符号的整型的取值范围是 -127 ~ 127

7 到 -7 的转换

mark

127 、-127 表示

mark

补码的用处

出现的问题

当计算机计算 -7 + 7 时,按照常识进行计算,底层是这样的:10000111 + 00000111 = 10001110 ,这时就发现并不等于 0

处理问题

这时我们的前辈就想到的 补码这种方式:

-7 二进制补码表示: 11111001

7 二进制表示:00000111

进行加法运算:11111001 + 00000111 = 100000000

结果是 100000000但是只有 8位去存储整数,所以第九位的1会溢出,这样显示的结果就是00000000,就完成我们需要的运算。

扩展

占用字节数越多,所能表示的数越大

数据类型 字节数 取值范围
char 1 -128 ~ 127
unsigned char 1 0 ~ 255
short 2 -32768 ~ 32767
unsigned short 2 0 ~ 65535
int 4 -2147483648 ~ 2147483647
unsigned short 4 0 ~ 4294967295
发表评论 / Comment

用心评论~

金玉良言 / Appraise
城南丨LV 1
2020-08-26 23:35
兄弟你节奏真的快!