软考学习-二进制转化
来源:互联网 发布: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
关于二进制数的转化,就是这些,如果有错误的地方。欢迎大家斧正
如果有不懂的地方,欢迎大家留言。
- 软考学习-二进制转化
- 【软考复习】——二进制
- 二进制转化
- 【软考学习】软考总结
- 软考学习目录
- 软考学习进度
- 软考学习笔记
- 软考学习笔记
- 软考学习总结
- 【软考总结】——二进制、十进制的转换问题
- 【软考总结】——十六进制与二进制的转换
- 软考学习进行时......
- 软考学习--海明码
- 软考学习-数学建模
- 十六进制转化为二进制
- 二进制转化为十六进制
- 十进制转化为二进制
- Bitset (二进制转化)
- python(五)二叉树
- Mybatis-03-配置文件及Mybatis主要API详解
- rapidjson串组装的代码示例
- 实现自己的仿真小车移动
- Android文本输入框EditText属性和方法说明
- 软考学习-二进制转化
- c++ primer第10章
- Spring知识整理【二】Spring 环境搭建
- 混合编程--fortran调用C++采用ODBC形式连接MYSQL数据库
- GCD and LCM HDU
- pip install 出现报asciii码错误的问题
- ARP协议详解
- 【已解决】R语言添加行、列,转置操作
- rtos开发总结