`
coolerbaosi
  • 浏览: 728813 次
文章分类
社区版块
存档分类
最新评论

二进制及逻辑运算学习

 
阅读更多

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics