进制
我们要先讲到位、字节,我们知道1字节=8位。
如果说要用二进制的形式表示的话,那么是多少,8个1对。
因为我们cpu只能读取二进制的数。
十进制就是(0,9] 是从0开是到9,有10位数所以为10进制,16进制也是同样的道理。
其实二进制转十进制是有规律的。下面有张图可以观察一下。
观察下二进制11对应的十进制是3,是不是2的2次方减一。
二进制的111对应的十进制是7,2的3次方减1.
二进制的11111111的十进制是255,2的8次方减1
规律就是2的n次方减1,都是1的情况下!
现在我要讲什么是带有符号位,什么是不带符号位。
带符号位,也就是说可以包括负数。
不带符号位,就是不包括负数,也就是从0开始,计算机怎么判断是带符号,还是不带符号的呢?
就是从第一位开始看,在C语言里,int整形默认是带符号位的也就是signed,左边第一位是1的话
就是负的,如果为0的话就为负。所以判断带符号位的,要占一位,好比如果我们要计算个正数的值
如果要判断是正还是负的话,那么计算的值会小一倍,在C语言里计算时,要给变量名指定数据类型
就是unsigned即可。
在计算机里存储带有符号位和不带符号位的,就要讲到补码了
上面都理解了后,现在可以来讲讲什么是补码了。
计算机是根据补码形式存储整数的。
存储的整数,就要讲到正数和负数。
分2种形式存储。
正数:
二进制形式存储。
负数:
先确定该数的绝对值
然后就按位取反
取反的意思就是0换成1,1换成0
最后加1即可
来源:CSDN
作者:weixin_44917357
链接:https://blog.csdn.net/weixin_44917357/article/details/103681064