1.3节 逻辑门与二进制数 part5

来源:互联网 发布:java 枚举声明 编辑:程序博客网 时间:2024/05/29 03:28

由于标题原因这里计划开始进入二进制数的运算里来。用这节的时间精通二进制所以比其他的教程会更精简一些。首先是概念世界上没有进制的说法只是人类为了计数方便创造了各种进制。还是那句话同样的数量的东西怎么数都是那些客观事实谁都无能为。而我们这里谈的是怎么数准备好笔和纸哦。


1.注意英语名10进制Decimal二进制Binary十六进制H。以后用打头字母代表进制.D1234就是十进制表示1234B1234就是用2进制表示1234.


2.几进制就是几为权重常用转换在下边一通百通多做练习


a.10进制到十进制变换

012,........9

10个数的权重(不懂这个词看例子)从右到左以此为110100......

D1793=3*10^0+9*10^1+7*10^2+1*10^3=1+90+700+1000=D1793


b. 2进制到十进制变换

B10110=0*2^0+1*2^1+...=D22


c.10进制到2进制变换

D84 84/2=42...0

42/2=21...0

21/2=10...1

10/2=5.....0

5/2=2.........1

2/2=1.........0

1/2=0........1

结果就是D84=B1010100

d.16进制

  • 就是123...,9,A,B,C,D,E,F(就是A是10B是11...)。这里用字母的原因就是10开始就是用两位表达的了而进制定义是n进制就是用n-1个一位数来表达不这样的话10和二进制会发生混淆。

  • 2^4=16,所以4位二进制表达一位十六进制。

  • 例十六进制到二进制

H2ED就是 十六进制 2ED = B 0010 1110 11012是0010E也就是14是1110D是1101


二进制到十六进制

B1111010 = H7A从右边读起1010就是A111是7

十进制到16进制

D333 333/16 = 20...13

20/16 =1... 4

1/16 = 0......1

结果是H14D

3. 计算机常用单位转换

1byte = 8bits

1nibble = 4bits

1word由处理器架构决定

1024byte=1KB

1024bite=1Kb

1KB=8*1Kb

4.LSBMSBLSB就是最没用的位可以被随时扔掉而MSB就是最有用的位要保留。

214656443.png

例只看amsb代表2^5,而lsb是0.在计算机四舍五入的时候当然不能把msb扔掉做加减法的时候可以。

5.二进制加法和十进制一样看例子就明白

215112191.png

那么试着算一下1101+0101=答案是10010多了一位就是说溢出了

6.正负号问题两套系统

D5=101我们拓延一位

D5=0101再把MSB换成1即可

D-5=B110这就是所谓的“符号系统”

  • 加法问题也就是减法


利用2的“补位系统”为了计算D-7=

首先D7=0111然后

计算~D7=1000再+1即可求出补位系统里的表达式 D-7=1001

然后按着5做加法即可。

例1D-2+D1=B1110+B0001=B1111=D-1

例2D-7+D7=B1001+B0111=B10000由于msb溢出扔掉结果为B0000。


可以发现补位系统里0是正数1111...1+1=100000...0,msb溢出把1扔掉



7。范围问题

例 若有4bit空位

补位系统-8到7

符号系统0到15

所以补位系统由于没有-0所以有N bits的时候范围是[2^(N-1), 2^(N-1- 1].而最大的负数就是B10000...0=-2^(N-1)由于虽然是负数但是由于msb溢出被扔掉变成正数所以被称为 奇异数。

例若只有有4bit空位在补码系统中计算D4+D5=B0100+B0101=B1001=-7结果溢出4bit但是用5bit就能得到正确结果。

符号拓延被定义为进行如下操作例如把4bit空位中1101放在7bit空位中则结果为111 1101


总结见上图是一个4bit空位三个系统的范围的列举。Unsigned范围从0到15补码系统从-8到7符号系统从-7到7.注意符号系统的两个01000和0000分别是-0和0.要熟练掌握以上7条就足以以不变应万变了。222153607.png

















本文出自 “从基础走向大师” 博客,请务必保留此出处http://physic.blog.51cto.com/1656469/1305245

原创粉丝点击