软考学习-二进制转化

来源:互联网 发布:asap2020软件 64bit 编辑:程序博客网 时间:2024/06/05 23:45

对于一个菜鸟来说学会二进制转化是很有必要的,至少在做题这方面是这样

感觉大家都有自己的二进制转化的方法,

我问过一部分人,他们的方式一般都是

用短除 " |___" 取余的方式进行转化

但是对于我这种懒汉的话,不想算除法所以我有自己的学习转化方法,希望对大家能有帮助

一共是两个办法

第一个:一眼法!

是不是感觉名字就很厉害,没错这个方法也确实很厉害,什么是一眼法呢?就是我一眼就知道答案

当然这只针对一些特殊的数字,

比如说

十进制----二进制

1----1

2----10

3----11

4----100

。。。

32----100000

。。。

等等啊,这些数字都有一些和明显的特征,那就是都是等于2的指数幂和2的指数幂+-1 的数字,

一般用一眼法就能解决了,那么一些比较难的数字呢,就要用到第二种方法了


第二种方法:拆分法

对于这种方法,有一个最基本的要求,就是对于2的指数幂有一个熟悉的了解

他们分别是:0 2 4 8 16 32 64 128 256 512 1024

一般到1024后边的就用不到了也就是到2的十次幂

然后看是了重中之重的部分

随便拿一个数字,比如说176

向下找到176最接近的2的指数幂:128

然后将176和128做差=48

然后向下找和48最接近的2的指数幂:32

然后将48和32做差=16

然后向下找和16最接近的2的指数幂:16

然后将16和16做差=0

这个时候就算完了~

在176中包含一个128一个32 一个16

既176=128+32+16

然后对于一个新手来说可以在纸上按倒序的顺序把2的指数幂写出(写需要用到的最大的)

128   64 32 16 8 42 0

然后将176中包含的数字下方写1,没有的地方写0

然后这个数字就出来了:10110000

对于一个老手来说,直接采用“一眼法”将结果写出:10110000

这是正数的二进制转化

对于负数就要有不同的方法了,采用“乘二进一法”

举一个例子:以-0.625为例

第一步将这个数乘以2

-0.625*2=-1.25

这是时候整数位为1所以在转化的时候,在小数点后第一位写1

第二步将“取一”之后的数字既-0.25再乘以2=-0.5

这是时候整数位为0所以在转化的时候,在小数点后第二位写0

第三部将-0.5再乘以2=-1

这个时候整数位为1所以在转化的时候,在小数点后第三位写1

此时会发现,已经没有小数位了,所以,这个数也就被转化完了,输出结果为:-0.101

同理再举一个例子,以0.4为例

第一步  (0.4)乘以2 =0.8  小数点后第一位写0

第二步 (0.8)乘以2=1.6   小数点后第二位写1(取1的过程)

第三步  (0.6)乘以2=1.2 小数点后第三位写1 (继续执行取一)

第四步  (0.2)乘以2=0.4 小数点后第四位写0 


此时发现,值又成为了0.4 那么后边就是一个重复的“0110”,

所以我们输出0.4转化为二进制数的结果为:0.0110


关于二进制数的转化,就是这些,如果有错误的地方。欢迎大家斧正

如果有不懂的地方,欢迎大家留言。



原创粉丝点击