博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
巧学二进制
阅读量:4919 次
发布时间:2019-06-11

本文共 3505 字,大约阅读时间需要 11 分钟。

巧学二进制

一 什么是进制

进制也就是进位制,是人们规定的一种进位方法。对于任何一种进制-----X进制,就表示某一位置上的数运算时是逢X进一位。十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,X进制就是逢X进位。

二 常见二进制

十进制

0、1、2、3、4、5、6、7、8、9、10、11、12------

二进制

0、1、10、11、100、101、110、111、1000、1001、1011、1111、10000、10001、10011、10111、11111------

八进制

0、1、2、3、4、5、6、7、10、11、12、13、14、15、16、17、20、21------

十六进制

0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F、10、11、12、13、14、15、16、17、18、19、1A、1B、1C、1D、1E、1F------

三 进制转换(正整数)

其他进制转十进制

  • 二进制 10001011 转换位 十进制(看第一位后面有N个数 1*n^n)

    10001011 = 1 * 2^7 + 1 * 2^3 + 1 * 2^2 + 1 * 2^0= 139
  • 十进制 102 转换为 十进制

    102 = 1 * 10^2 + 0 * 10^1 + 2 *10^0 = 102
  • 二进制 1011001 转换为 十进制

    64 + 16 + 8 + 1 = 89
  • 八进制 76 转换为 十进制

    7 * 8^1 + 6 * 8^0= 62
  • 十六进制 12b 转换为 十进制

    1 * 16^2 + 2 * 16^1 + b = 299

十进制转换为其他进制

  • 十进制 26 转换为 二进制

    26 / 2 = 13  余  0  13 / 2 = 6   余  1  6  / 2 = 3   余  0  3  / 2 = 1   余  1  结果是  11010
  • 十进制 37 转换为 二进制

    37 / 2 = 18 余 1  18 / 2 = 9  余 0   9  / 2 = 4  余 1  4  / 2 = 2  余 0  2  / 2 = 1  余 0  结果 为 100101
  • 十进制 489 转换为八进制

    489 / 8 = 61 余 1  61 / 8 = 7  余 5  结果 751
  • 总结:十进制转为N进制。将十进制数除以N,得到的商再除以N,依次类推,直到得到的商小于N,然后在旁边标出各步的余数,最后从最后一次商开始倒着拼上余数写出来。高位补零。

2 的次方数

2^0 = 1    2^1 = 2    2^2 = 4    2^3 = 8    2^4 = 16    2^5 = 32    2^6 = 64    2^7 = 128    2^8 = 256    2^9 = 512    2^10 = 1024

八四二一法 快速转换

  • 二进制 10011011 转换为 十进制

    128 + 16 + 8 + 2 + 1 = 155  128 64 32 16 8 4 2 1 (个人方法)   1  0   0  1 1 0 1 1
  • 二进制 1100101001 转换为 八进制

    1  100  101  001  对应  1  4  5  1  结果为 1451
  • 十进制 59 转换为 二进制

    32+16+8+2+1=111011
  • 八进制 176 转换为 二进制

    1       7       2  001    111     010  1111010
  • 二进制 1000111011011 转换为 十六进制

    0001    0001    1101    1011    1       1       D       B  11DB
  • 十六进制 AD1 转换为 二进制

    1010 1101 0001
  • 十进制 89 转换为 八进制(先转换为二进制)

    89 = 64 + 16 + 8 + 1  001 011 001  131
  • 八进制 47 转换为 十六进制

    10 0111  27

四、进制转换(小数)

十进制转为二进制

  • 十进制数 10.25 转换为 二进制

    整数部分 10 转换二进制 为 1010  小数部分 0.25  0.25 * 2 = 0.5 取 0  小数部分 0.5  0.5  * 2 = 1   取 1  小数部分 0.0  结束  最后结果  1010.01
  • 十进制数 12.58 转换为 二进制

    整数部分 12 转换为 二进制  1100  小数部分 0.58  0.58 * 2 = 1.16 取  1  小数部分 0.16   0.16 * 2 = 0.32 取  0  小数部分 0.32  0.32 * 2 = 0.64 取  0  小数部分 0.64  0.64 * 2 = 1.28 取  1  小数部分 0.28  0.28 * 2 = 0.56 取  0  小数部分 0.56  0.56 * 2 = 1.12 取  1  小数部分 0.12  继续 永远也玩不了 ....  结果 1100.100101....
  • 总结:

    小数部分只有是 0.5  0.25  0 .75  0.125  0.0625 等 可以是 有限小数  转换为分数后,分母是 2的次方数 才可以转为有限小数
  • 同样适用于 十进制 转 其他进制

二进制转十进制

  • 二进制 1101.1101 转为 十进制

    整数部分 1101 转为 十进制 为 13  小数部分0.1101= 1 * 2^-1 + 1 * 2^-2 + 0 * 2^-3 + 1 * 2^-4= 0.5 + 0.25 + 0 + 0.0625 = 0.8125  13.8125
  • 同样适用 其他进制 转换为 十进制

熟记 2 的 负数次方

2^-1=0.5    2^-2=0.25    2^-3=0.125    2^-4=0.0625    2^-5=0.03125    2^-6=0.015625    2^-7=0.0078125    2^-8=0.00390625    2^-9=0.00195312    2^-10=0.00097656

二进制和八进制或十六禁止的小数转换

  • 二进制 10.10010101 转换为 八进制

    整数部分 10 转 八进制 为 2  小数部分 进行 拆分 3个一组,不足右补零  100——>4  101——>5  010——>2  最后结果 2.452
  • 二进制数 10.10010101 转换为 十六进制

    整数部分 10 转 十六进制 为 2  小数部分进行拆分4个一组,  1001->9  0101->5  最后结果 2.95
  • 八进制 17.236 转换为 二进制

    整数部分17转二进制为1111  小数部分进行拆分 一个拆分成3个数字为一组  2->010  3->011  6->110  最后结果 1111.010011110
  • 十六进制 a.3ef 转换为 二进制

    整数部分 a 转 二进制 为 1010  小数部分进行拆分 一个拆分成4个数字为一组  3->0011  e->1110  f->1111  最后结果 1010.001111101111

五、二进制运算

二进制加法

  • 1101 + 100101

    1101  +100101  ---------   110010
  • 直接转化为十进制算好之后转为二进制

    1101=13  100101=37  13+37=50  110101

二进制减法

  • 1001001 - 10011

    1001001  - 10011  ---------------   110110

    二进制乘法

  • 1001 * 110

    1001  x  110  -------------    0000   1001  1001  ---------------  110110

二进制除法

  • 100110 / 110

    110       -----------------  110)100110          110      --------------------------          111          110      --------------------------              10  结果 110 余 10

转载于:https://www.cnblogs.com/DCL1314/p/7197491.html

你可能感兴趣的文章
java初学者笔记总结day4
查看>>
java泛型
查看>>
【优先队列】-HDU4546比赛难度
查看>>
操作系统简介
查看>>
正向代理--反向代理
查看>>
JavaScript实现多栏目切换效果
查看>>
Lazarus1.0.2 和 DelphiXE3 的一些异同
查看>>
Rapid 2D-to-3D conversion——快速2D到3D转换
查看>>
在Net下处理Json
查看>>
mbed学习之 PWMOUT
查看>>
【旧文章搬运】隐藏驱动完整攻略(基础篇)
查看>>
maven快速入门
查看>>
NSFileHandle(文件对接器)
查看>>
初试部署自己的网站到服务器
查看>>
随机获取10条数据的方法
查看>>
Linux下搭建Python开发环境部署
查看>>
[Ramda] Filter, Reject and Partition
查看>>
servlet中不能没有无参构造函数
查看>>
js 中{},[]中括号,大括号使用详解
查看>>
JavaScript变量及数据类型
查看>>