有符号数和无符号数
C语言中:
· signed 关键字声明变量为有符号类型
· unsigned 关键字声明变量为无符号类型
注意: C语言中只有整数类型能够声明unsigne变量
有符号数和无符号数的分析1:表示法
有符号数(signed):
· 在计算机内部用补码表示有符号数
—最高位为 0, 表示这个数为正数
—最高位为 1, 表示这个数为负数
正数的补码为正数本身
负数的补码为负数的绝对值取反加 1
例:
8位整数 6 的补码为: 0000 0110
8位整数 -6 的补码为 : 1111 1010
16位整数 16 的补码为: 0000 0000 0001 0000
16位整数 -16 的补码为: 1111 1111 1111 0000
无符号数(unsigned):
· 在计算机内部用原码表示无符号数
-无符号数没有符号位, 只用于表示正数
有符号数和无符号数的分析2:取值范围
有符号数(signed):
· 因最高位为符号位