原码:
原码也叫 符号-绝对值码
最高位0表示正, 1表示负, 其余二进制位是该数字的绝对值的二进制位
例如:
-5 的源码等于: 10101
原码简单易懂
加减运算复杂
存在加减乘除四种运算,增加了CPU的复杂度
零的表示不唯一
反码:
反码运算不便,也没有在计算机中应用
移码:
移码表示数值平移n位, n称为移码量
移码主要用于浮点数的阶码的存储
补码:
> 已知十进制求二进制
- 求正整数的二进制
除2取余,直至商为零,余数倒叙排序
- 求负整数的二进制
先求与该负数相对应的正整数的二进制代码,
然后将所有位取反,末尾加1,不够位数时,左边补1
例如:
-3 等于: 11111111111111111111111111111101
等于: 十六进制的FFFFFFFD
- 求零的二进制
全是零
> 已知二进制求十进制
- 如果首位是0,则表明是正整数,按普通方法来求
- 如果首位为1,则表明是负整数,
将所有位数取反,末尾加1,所得数字就是该负数的绝对值
例如:
0xFFFFFFEF 等于 -17
- 如果全是零,则对应的十进制数字就是零
学习的目标:
在Vc++6.0中一个int类型的变量所能存储的数字的范围是多少
int类型变量所能存储的最大正整数用十六进制表示是: 7FFFFFFF
int类型变量所能存储的绝对值最大的负整数用十六进制表示是: 80000000
绝对值最小负数的二进制代码是多少
最大正数的二进制代码是多少
已知一个整数的二进制代码求出原始的数字
数字超过最大正数会怎样
像8位的二进制最大正整数是 (01111111)二进制 = (127)十进制,
那么 (128)十进制 = (10000000)二进制 = (-128)十进制
//提示:可以参考上面补码的操作
//超出8位,还是按低8位进行运算
不同类型数据的相互转化
如有不对或者疏漏的地方,请多多指出。谢谢(⁄ ⁄•⁄ω⁄•⁄ ⁄)