进制:二进制、八进制、十六进制
位值原理,即:同一个数字,放在不同的数位上,代表不同大小的数。
例如:十进制中,百位上的1表示100,十位上的1表示10.
十进制之中,每个数都可以被拆开:
123=1×100+2×10+3×1
满十进一,再满十再进一,因此要想进到第三位,得有10×10;第4位得有10×10×10。对十进制,从低位到高位,依次要乘上:
10^0(10的0次方,后同),10^1,10^2,10^3……
对2进制,从低位到高位,依次要乘以2^0,2^1,2^2,2^3……
也就是1、2、4、8、……
因此原来十进制咱们叫 十位、百位、千位……
现在二进制其实是 二位、四位、八位……
二进制转十进制 | 八进制转十进制 | 十六进制转十进制 |
二进制数1011=1×2^3+0×2^2+ 1×2^1+1×2^0 =1×8+0×4+1×2+1×1 =8+2+1 =11 | 八进制就是逢8进1,八进制数采用0~7这八数来表达一个数 5*8^2+1*8^3=839 | 16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。字母不区分大小写。 2AF5换算成10进制:5 * 160 + F * 161 + A * 162 + 2 * 163 = 10997 |
十进制转二进制 | 十进制转八进制 | 十进制转十六进制 |
对于整数部分,用被除数反复除以2,除第一次外,每次除以2均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。 6=110(2) | 10进制数转换成8进制的方法,和转换为2进制的方法类似,唯一变化:除数由2变成8。 | 10进制数转换成16进制的方法,和转换为2进制的方法类似,唯一变化:除数由2变成16。 |
整数部分和小数部分
十进制转化为二进制:对于小数部分,采用连续乘以基数2,并依次取出的整数部分,直至结果的小数部分为0为止。故该法称“乘基取整法”。
原码、反码、补码
原码、反码、补码的引入是为了解决做减法的问题。
原码
最高位为符号位,0表示正数,1表示负数,数值位是它的绝对值,这样构成的数码称原码。
+127=( 01111111) -127 =( 11111111 )
对于正数之间的加法通常是不会出错的,而正数与负数相加,或负数与负数相加,就要引起莫名其妙的结果,这都是符号位引起的。因此,引入反码。
反码
正数的反码还是等于原码,负数的反码是正数原码的符号位和数值位按位取反。
+127=( 01111111) -127 =( 10000000)
反码与原码比较,最大的优点,就在于解决了减法的问题。
补码
正数的补码等于他的原码,负数的补码等于反码+1。
或者“负数的补码等于他的原码自低位向高位,尾数的第一个‘1’及其右边的‘0’保持不变,左边的各位按位取反,符号位不变。”
小数表示:定点数与浮点数
定点数:小数点位置固定不变的数。
小数点固定在数据的最高位就是定点小数,固定在小数点最高位的称为定点整数。符号位,0表示正数,1表示负数。
浮点数:小数点的位置由阶码规定,因而是浮动的。来源于科学记数法,浮点数:用阶码和尾数表示的数,尾数通常为纯小数。
浮点数由符号位、有效数字(尾数)、指数(阶码)来表示,浮点数标准是IEEE754,规定了4种浮点数类型:单精度、双精度、延伸单精度、延伸双精度。
浮点数 = 尾数 * 基数^阶码
IEEE标准浮点数
单精度浮点数(阶码偏移7FH)
单精度分配了4个字节,一共32位,1位符号位,8位指数位,23位有效数字位。
双精度浮点数(阶码偏移3FFH)
举例:将1011.10101用8位阶码、15位尾数的规格化浮点数形式表示。
解:因为1011.10101=0.101110101×2^4
所以要求的浮点数为:000000100101110101000000
ASCII码
汉字编码
1.输入码
这是一种用计算机标准键盘上按键的不同排列组合来对汉字的输入进行编码。现在常用的输入法主要有流水码、音码、形码和音形码4类。
2.交换码
(1)国标码
(2)其他编码
除了GB码外,目前常用的还有UCS码Unicode码、GBK码及BIG5码等
3.机内码
机内码是计算机内部信息存贮、传递和运算所使用的代码。
4.字形码
汉字字形码又称为汉字字模,用于汉字在显示屏或打印机上输出。汉字字形码通常有点阵和矢量两种表示方式。
点阵表示法编码和存储方式简单、无需转换直接输出,但字形放大后产生的效果差,而且同一种字体不同的点阵需要不同的字库。矢量表示方式的特点正好与点阵表示方式相反。