2013-07-15 10:12
http://blog.csdn.net/junfeng120125/article/details/9328973
1.十进制转二进制:(如果是整数)除以2取余,逆序排列,(如果是小数)乘以2取整,顺序排列
例:10(10)=1010(2) 10%2=0 5%2=1 2%2=0 1%2=1 最后表示为二进制就是1010 例: (0.625)10= (0.101)2 0.625X2=1.25 ……1 0.25 X2=0.50 ……0 0.50 X2=1.00 ……1 2.二进制转十进制:按权展开求和 如二进制1010 1*2^3+0*2^2+1*2^1+0*2^0=10 (1011.01)2 =(1×2^3+0×2^2+1×2^1+1×2^0+0×2^(-1)+1×2^(-2) )10 3.二进制转八进制 :从小数点开始,整数部分向左、小数部分向右,每3位为一组用一位八进制数的数字表示,不足3位的要用“0”补足3位,就得到一个八进制数。 八进制数字与二进制数字对应关系如下: 000 -> 0 001 -> 1 010 -> 2 011 -> 3 100 -> 4 101 -> 5 110 -> 6 111 -> 7 例:将八进制的37.416转换成二进制数: 3 7 . 4 1 6 011 111 .100 001 110 即:(37.416)8 =(11111.10000110)2 例:将二进制的10110.0011 转换成八进制: 0 1 0 1 1 0 . 0 0 1 1 0 0 2 6 . 1 4 即:(10110.0011)2 = (26.14)8 4.二进制数转换成十六进制数:从小数点开始,整数部分向左、小数部分向右,每4位为一组用一位十六进制数的数字表示,不足4位的要用“0”补足4位,就得到一个十六进制数。 0000 -> 0 0001 -> 1 0010 -> 2 0011 -> 3 0100 -> 4 0101 -> 5 0110 -> 6 0111 -> 7 1000 -> 8 1001 -> 9 1010 -> A 1011 -> B 1100 -> C 1101 -> D 1110 -> E 1111 -> F 例:将十六进制数5DF.9 转换成二进制: 5 D F . 9 0101、 1101 1111 .1001 即:(5DF.9)16 =(10111011111.1001)2 例:将二进制数1100001.111 转换成十六进制: 0110 0001 . 1110 6 1 . E 即:(1100001.111)2 =(61.E)16 二进制数的逻辑运算 逻辑运算是指对因果关系进行分析的一种运算。逻辑运算的结果并不表示数值大小,而是表示一种逻辑概念,若成立用真或1表示,若不成立用假或0表示。二进制数的逻辑运算有“与”、“或”、“非”和“异或”4种。 “与”运算(AND) “与”运算又称逻辑乘,用符号“?”或“∧”来表示。运算规则如下。 0∧0 = 0 0∧1 = 0 1∧0 = 0 1∧1 = 1。 即当两个参与运算的数的对应码位中有一个数为0,则运算结果为0,只有两码位对应的数都为1结果才为1。这与前面介绍的二进制数乘法运算是一样的。图2-16是两个“与”的逻辑运算示例。 “或”运算(OR) “或”运算又称逻辑加,用符号“+”或“∨”表示。运算规则如下。 0∨0 = 0 0∨1 = 1 1∨0 = 1 1∨1 = 1。 即当两个参与运算数的相应码位只要有一个数为1,则运算结果为1,只有两码位对应的数均为0,结果才为0。图2-17是两个“或”的逻辑运算示例。 “非”运算(NOT) “非”运算实现逻辑否定,即进行求反运算,用符号“—”表示。“非”运算规则:0 = 1,1 = 0。注意“非”运算只是针对一个数所进行的“运算”,这与前面的“与”和“或”运算不一样。它的实质意义就是取反。如“10111101”进行“非”运算后就得到“01000010”,对比相应位即可验证以上运算规则了。 “异或”运算(XOR) “异或”运算用符号“ ”来表示。其运算规则如下。 0 0 = 0 0 1 = 1 1 0 = 1 1 1 = 0 即当两个参与运算的数取值相异时,运算结果为1,否则为0。图2-18是两个“异或”逻辑运算示 3.将负数转换为二进制 在计算机中,负数以其正值的补码形式表达。 原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。 比如 00000000 00000000 00000000 00000101 是 5的 原码。 反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。 取反操作指:原为1,得0;原为0,得1。(1变0; 0变1) 比如:将00000000 00000000 00000000 00000101每一位取反,得11111111 11111111 11111111 11111010。 称:11111111 11111111 11111111 11111010 是 00000000 00000000 00000000 00000101 的反码。 反码是相互的,所以也可称: 11111111 11111111 11111111 11111010 和 00000000 00000000 00000000 00000101 互为反码。 补码:反码加1称为补码。 也就是说,要得到一个数的补码,先得到反码,然后将反码加上1,所得数称为补码。 比如:00000000 00000000 00000000 00000101 的反码是:11111111 11111111 11111111 11111010。 那么,补码为: 11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011 所以,-5 在计算机中表达为:11111111 11111111 11111111 11111011。转换为十六进制:0xFFFFFFFB。 -1在计算机里用二进制表达就是全1。16进制为:0xFFFFFF |
|