Chinaunix首页 | 论坛 | 博客
  • 博客访问: 347092
  • 博文数量: 37
  • 博客积分: 1331
  • 博客等级: 少尉
  • 技术积分: 760
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-11 14:33
文章分类

全部博文(37)

文章存档

2015年(1)

2014年(4)

2013年(1)

2012年(2)

2011年(25)

2010年(4)

分类: WINDOWS

2011-11-04 17:06:37

十进制转二进制

原来的方法:

用2辗转相除至结果为1

将余数和最后的1从下向上倒序写 就是结果

例如302

302/2 = 151 余0

151/2 = 75 余1

75/2 = 37 余1

37/2 = 18 余1

18/2 = 9 余0

9/2 = 4 余1

4/2 = 2 余0

2/2 = 1 余0

故二进制为100101110

   

转换所依据的理由与二进制数转十进制数完全一样,这里就不再赘述。我们同样以“除以2反向取余”、“乘2正向取整”的方法中的例题为例:

(29.375)10 = (    )2

第一步:与二进制转十进制相同,先画出一定数目的代表“位”的标记“×”,并在标记上方写上对应的值,转换时同样分整数部分与小数部分分别进行。

•••

64

32

16

8

4

2

1

.

0.5

0.25

0.125

0.0625

•••

•••

×

×

×

×

×

×

×

.

×

×

×

×

•••

 

第二步:(整数部分转换开始)在标记数字中找到最大的小于被转换数的数字,这里最大的小于 29 的数字 为 16 ,则在该数字位的标记下方写上“1”;

•••

64

32

16

8

4

2

1

.

0.5

0.25

0.125

0.0625

•••

•••

×

×

×

×

×

×

×

.

×

×

×

×

•••

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

第三步:将29 减去 16 :29-16=13 ;再找小于余数 13 的最大数字为 8 ,则在 8 数字位的标记下方写上“1”;

•••

64

32

16

8

4

2

1

.

0.5

0.25

0.125

0.0625

•••

•••

×

×

×

×

×

×

×

.

×

×

×

×

•••

 

 

 

1

1

 

 

 

 

 

 

 

 

 

 

第四步:继续将 13 减去 8:13-8=5 ;找小于余数 5 的最大数字为4 ,则在4数字位的标记下方写上“1”;如:

•••

64

32

16

8

4

2

1

.

0.5

0.25

0.125

0.0625

•••

•••

×

×

×

×

×

×

×

.

×

×

×

×

•••

 

 

 

1

1

1

 

 

 

 

 

 

 

 

 

第五步:继续将 5 减去 4 :5-4=1 ;余数正好等于数字 1 ,则在1数字位的标记下方写上“1”;

•••

64

32

16

8

4

2

1

.

0.5

0.25

0.125

0.0625

•••

•••

×

×

×

×

×

×

×

.

×

×

×

×

•••

 

 

 

1

1

1

 

1

 

 

 

 

 

 

第六步:(小数部分开始)在标记数字中找到最大的小于被转换数的数字,这里最大的小于0.375 的数字为0.25 ,则在该数字位的标记下方写上“1”

•••

64

32

16

8

4

2

1

.

0.5

0.25

0.125

0.0625

•••

•••

×

×

×

×

×

×

×

.

×

×

×

×

•••

 

 

 

1

1

1

 

1

 

 

1

 

 

 

 

第七步:将0.375 减去 0.25 :0.375-0.25=0.125;余数正好为0.125,直接在0.125数字位的标记下方写 上“1”;

•••

64

32

16

8

4

2

1

.

0.5

0.25

0.125

0.0625

•••

•••

×

×

×

×

×

×

×

.

×

×

×

×

•••

 

 

 

1

1

1

 

1

 

 

1

1

 

 

 

第八步:其余没写“1”的位,全部以“0”来补足,小数点千万别忘记!

•••

64

32

16

8

4

2

1

.

0.5

0.25

0.125

0.0625

•••

•••

×

×

×

×

×

×

×

.

×

×

×

×

•••

 

 

 

1

1

1

0

1

 

0

1

1

 

 

 

第九步:结论    (29.375)10 = ( 11101.011 )2  与教程中的转换结果一吗?

    

在实际的换算过程中,只要直接在第八步中填写相应数据,然后用第九步写出相应的转换结果。就可以了


阅读(4657) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~