进制、补码
进制
1、什么叫n进制
逢n进一
2、把r进制转化为十进制
(10110)2 = 0 * 20 + 1 * 21 + 1 * 22 + 1 * 23 + 1 * 24
3、十进制转化为r进制
除r取余,余数倒序排列
4、不同进制所代表的数值之间的关系
十进制的 3981 转化成 十六进制的 F8D
所代表的本质上都是同一个数
5、小数的二进制
6、补码
原码 【也叫 符号-绝对值码】
最高位0 表示正,1表示负,其余二进制位是该数字的绝对值的二进制位
原码简单易懂
加减运算复杂
存在加减乘除四种运算,增加了CPU的复杂度
零的表示不唯一
反码
反码运算不便,也没有在计算机中应用
补码
十进制转二进制
正整数转二进制
除2取余,直至商为0,余数倒叙排序
负整数转二进制
先求与该负数相对应的正整数的补码,然后将所有位取反,末尾加一,不够位数时,左边补1
求零转二进制
全是0 (补码的0的二进制代码是唯一的)
已知二进制求十进制
如果首位是0,则表明是正整数,按普通方法求
如果首位是1,则表明是负整数
将所有位取反,末尾加1,所得数字就是该负数的绝对值
如果全是0,则对应的十进制数字就是0
移码
移码表示数值平移n位,n为移码量
移码主要用于浮点数的阶码的存储
8位二进制所代表的十进制示意图
二进制 十进制
0000 0000 0
0000 0001 1
………… …
0111 1111 127
1000 0000 -128
1000 0001 -127
1000 0010 -126
………… …
1111 1111 -1
在Vc++6.0中一个int 类型的变量所能存储的数字的范围是多少(int 默认4个字节,32位)
int 类型变量所能存储的最大正数用十六进制表示:7FFFFFFF
int 类型变量所能存储的绝对值最大负整数用十六进制表示:80000000
具体可以参见“8位二进制所代表的十进制示意图”
绝对值最小负数的二进制代码
首位是1,后面全是0
最大正数的二进制代码
首位是0,后面全是1
已知一个整数的二进制代码求出原始的数字
数字超过最大正数会怎样
溢出,只会把最后面的保留下来
不同类型数据的相互转换