C语言负整数在内存中的存储
内存的存储
1)在电脑的内存中分为1byte = 8bit 每个bit中可以储存一个低电压或者是高电压
也就是0和1
2)正如下面所示1字节大小
3)控制保存3
C 变量占用的内存
1)整数类型
char (通常是一个字节(八位), 这是一个整数类型。)
int (整型,4 个字节,取值范围 -2147483648 到 2147483647。)
unsigned char(自然数 1 字节 0 ~ 255 )
2)正好unsigned char在内存中占用1字节也就是8比特,所以下面用该类型表示。
unsigned char a = 0; 声明赋值变量,在内存中分配1字节
3)如果赋值大于所开辟的内存时将内存溺出(重要***)
比如unsigned char a = 256; 输出为0
1 0000 0000
当unsigned char a = 257; 输出为1
1 0000 0001
当赋值大于开辟的1字节时将自动舍去多余的
负整数在内存中
1)每使用unsigned char一次就在内存中开辟1字节(如下)
0000 0000
2)每次整加一次十进制编辑器将其转换为二进制存在内存当中(如unsigned char a = 4;)
0000 0100
3)在系统中负数的表达一般是在开头的第一位如图整体为X由头A和和B组成
4)当A内部可以储存0~1 当为0时该X为整数,当为1时该X为负数
该图像输出为【1】
5)负数的显示是在取反如
0111 1111
输出【127】
1000 0001
输出 【-127】
B 的最值为1 ~ 127
-B 的最值为-127 ~ -1
因为A的值决定是正数还是反数,所以可以得出公式-X = 256 - X得出反数(但是取值范围不得超过127)
输入【1】
1 0000 0000
0 0000 0001
0 1111 1111
值为【-127】取反为【-1】