进制转换: H=>十六进制 D=>十进制 O=>八进制 B=>二进制 将二进制转换为十进制 1011100B=(1*2^6)+(0*2^5)+(1*2^4)+(1*2^3)+(1*2^2)+(0*2^1)+(0*2^0)=92D 将十六进制转换为十进制 3A4H=(4*16^0)+(10*16^1)+(3*16^2)=932D 十六进制和二进制 0011 0101 1011 1111 0011 0101 1011 1111 ↓ ↓ ↓ ↓ 3 5 B F // 直接转换 为十进制 然后转换为十六进制 二进制4位是十六进制的一位 // Eg: Fh=15d=1111b 以此类推 十六进制->十进制 注意:用取余法 //算完全部的数字后再写余数和除数~ 有符号数和无符号数 1.八位 有符号 10000000 => -128 01111111 => 127//第一个位是符号 2.十六位 有符号 1000000000000000~0111111111111111 ==(-32768~32767) //那个‘1 ’既代表符号位,也代表数字位 还没有学补码和反码~~ 1.八位 无符号 11111111==255 2.十六位 无符号 1111111111111111==65535 3.扩展? 常常需要把一个n位扩展成m位二进制数(m>n) 当扩展的数是无符号数时,只要在最高位前扩展(m-n)个0 例如:21的8位二进制和16位的二进制补码如下:(补码? 好像还没讲) 00010101 8位 0000000000010101 16位 4.补码的加法和减法 对一个整数的补码表示按位求反后再在末尾加1,可以得到与此正数相应的负数的补码表示。 把这种对一个二进制按位求反后在末尾加1的运算称为求补运算; 可以证明补码表示的数具有以下特征: [X]=>[-X]//取反 末尾加一就是取反 正反的都可以取反 补码的加减法 【很重要】 [-117]补=FF8Bh 对[-117]补作求补运算: [-117]补为: 1111 1111 1000 1011 按位求反: 0000 0000 0111 0100 末尾加一: 0000 0000 0111 0101 这个数就是:[+117]补=0075H 这个特性在补码的加、减中很有用(看出来了!!!) 补码的加法规则是: [X+Y]补=[X]补+[Y]补 补码的加减法规则是:[X-Y]补=[X]补+[-Y]补 例子:25+(-32) 25 00011001 + (-32) + 11100000 --------- ------------- -7 11111001 /*就是32的求补然后再计算 结果11111001是7的补码所以是-7*/ 非数据的表示: 除了数值(比如ABC和图表),为了处理要进行编码!!这样才可方便存储~而且还可赋予他们数值的数据操作属性【没什么用,说的都是废话!】 当然典型的就是ASCII码了~(用的7位二进制编码) 比较常用的: 空格 20H 0~9 30H=0.... A 41H... a 61H... 字节~ 一个字节是8个位 7 6 5 4 3 2 1 0(图) 分开两半就是半个字节 两个字节是一个字就是16个; 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0(图) 双字节 里面有32个位,高位就是高字,低的就是低位 四字 里面有64个!!! TM还有十字!!! 80个位(WCL) //终于没了 下面字符串~ 一个线性的字符数组,一个字符是个字或者双字~~ 收货会了就过~!!! 收货: 1.一个进制转换~O D H B 2.一个数据和非数据的表示~ 3.补码~ 加减法不容易 4.十六进制转二进制,直接看 ~~还有题~?? 1. 32767D=>为??H 255D=>为??H 2.补码表示,还有带符号数和无符号数时,他们表示的十进制是什么 Eg:补码 D8H->11011000B 无符号:(1*2^7)+(1*2^6)+(0*2^5)+(1*2^4)+(1*2^3)+(0*2^2)+(0*2^1)+(0*2^0)=216D 有符号:把11011000按位取反末尾加一 00101000 为:-40D FFH是什么??? 哇哈哈哈 计算补码的时候出错了~
32是100000 但是怎么也算不出来他的补码是11100000
最后 才知道...我忘记了加前面的000 要按照8位或者16位计算才可~【加个重】