二进制、八进制、十进制、十六进制之间的相互转换

2023-11-15

一.   二进制、八进制、十六进制转换为十进制

方法:位权求和法

二进制用符号“B”表示   十进制用符号“D" 表示   八进制用符号"O"表示 十六进制用符号"H"表示

(100101.10111)B   =  (1*2^5 + 0*2^4 + 0*2^3 + 1*2^2 + 0*2^1 + 1*2^0  + 1*2^-1 + 0*2^-2 + 1*2^-3 + 1*2^-4 + 1*2^-5)D

(7376.3576)O  =  ( 7*8^3 + *8^2 + 7*8^1 + 6*8^0 + 3*8^-1 + 5*8^-2 + 7*8^-3 + 6*8^-4)D

(9FC56.67A)H =  (9*16^4+ 15*16^3+ 12*16^2+ 5*16^1+ 6*16^0+6*16^-1+7*16^-2+10*16^-3)D

                           

二.  十进制转换为 二进制、八进制、十六进制   

方法:整数部分 + 小数部分

整数部分·:除R倒取余数法         (从下到上取值)

193       397     746                       

193/2 = 96  ~                       397/8 = 49  ~               746/16 = 46   ~  A

  96/2 = 48  ~                        49/8 = 6    ~    1                 46/16 = 2   ~  E

  48/2 = 24  ~    0                        6/8 = 0     ~                   2/16 = 0     ~  2

  24/2 = 12  ~                       

  12/2 = 6    ~    0                                                                                   

    6/2 = 3    ~    0                    (193)D = (11000001)B

    3/2 = 1    ~    1                   ( 397)D = (615)O

    1/2 = 0    ~    1                    (746)D = ( 2EA)H

 小数部分:乘R倒取余数法     (从上到下取值,一般取到4到5位数字)

                0.73                                  0.45                                     0.3         

0.73 * 2 = 0.46  ~               0.45 * 8 = 0.6 ~                0.3 * 16 = 0.8  ~ 4

0.46 * 2 = 0.96  ~  0                0.6 * 8 = 0.8 ~  4                 0.8 * 16 = 0.8  ~ C

0.96 * 2 = 0.92  ~  1                0.8 * 8 = 0.4 ~  6                  0.8 * 16 = 0.8 ~ C

0.92 * 2 = 0.84  ~                 0.4 * 8 = 0.2 ~                   0.8 * 16 = 0.8 ~ C

(0.73)D ~ (0.1011) B               (0.45)D ~ (0.3463)O            (0.3)D ~ (0.4CCC)H

三.  二进制转化为 八进制、十六进制

1.二进制转八进制:取三合一法

取三和一法从小数点开始向左向右,每3位组成一个整体,转换为十进制,最左边的不够3位, 就在最左边补0,最右边的不够3位,就在最右边补0

             

例1    1001110010.1110001010 

   1 001 110 010.111 010 101 = 001 001 110 010 . 111 010 101

                                                    1     1       6     2   .    7     2        5

1 001 110 010.111 010 101 )B = (1162.725)O

例2   1011101110.10111

   10 101 110.101 11 = 010  110 . 101 110

                                       2      6   .    5    6

  (10 101 110.101 11)B = (26.52)O

2.二进制转十六进制:

方法:取四合一法

取四合一法从小数点开始向左向右,每4位组成一个整体,转换为十进制数,最左边不够4 位, 就在最左边补0,最右边的不够4位,就在最右边补0

例1    1001110010.1110001010 

10 0111 0010.1110 1010 1 =   0010 0111 0010 .1110 1010 1000

                                                     2      7       2   .    E      A      8 

(10 0111 0010.1110 1010 1)B  =  (272.EA8)H

例2     11000101110.001111001

 110 0010 1110.0011 1100 11 = 0110  0010  1110 . 0011 1100 1100

                                                       6       2      E    .   3       C       C

(11000101110.001111001)B =  (62E.3CC)H

四. 八进制、十六进制转换成 二进制

1. 八进制转换成二进制

 方法:一分为三法

一分为三法:将每一个八进制数字转换为3位数字的二进制数表示

75673

75673 =  111 101 110 111 011

                7     5     6      7     3

75673)O = (111 101 110 011)B

2.  十六进制转化成二进制

方法:一分为四法

一分为四法:将每一个十六进制数转换为4位数组的二进制数表示

9F6D4

9F6D4= 1001  1111 0110  1101 0100

                9        F        6       D      4       

   (9F6D4)H = (1001 1111 0110 1101 0100)B

五. 十进制和二进制之间的快速转换

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

1.十进制转化为二进制   

例1: 67=64+2+1所以再64,2,1下面位置补充1,其余补充0

补充位置时,从数值较大位置开始补充,然后按照数值大小依次补充1或0

      64       32      16      8        4         2         1

        1        0         0       0       0         1          1

所以(67)D   =  (1000011)B

例2:197 =12 ^ 7 +  12 ^ 6 +  02 ^ 5+  02 ^ 4+  02 ^ 3+  12 ^ 2 +  02 ^ 1+  12 ^ 0               =128+64+4+1

 128   64       32      16      8        4         2         1

   1      1        0         0        0        1       0           1

   (197 )D  = (11000101)B

2.二进制转十进制

例1: 10010111

先写上 :      1         0           0         1         0         1          1          1

然后填充: 128      64        32       16        8          4                  1

十进制为: 128+16+4+2+1=251

10010111)B =(251)D

例2:   10101110

先写上 :       1         0        1        0        1        1        1          0

然后填充:  128      64       32     16        8        4        2          1     

十进制为:128+32+8+4+2 = 174

(10101110)B = (174)D

六. 八进制与十六进制之间的转换

方法:八进制与十六进制不能直接转换,需要通过转换成二进制或十进制进行互相转换

1.    八进制转换成十六进制

   75673

  第一步:八进制 转换成 二进制       方法:一分为三法  

     

                75673 =  111 101 110 111 011

                                 7     5     6    7     3

                (75673)O = (111 101 110 111 011)B

  第二步:二进制转换成十六进          方法:取四合一法

           111 1011 1011 1011  = 0111  1011  1011  1011  

                                                  7         B       B       B

                (111 1011 1011 1011)B =  (7BBB)H

        所以:(75643)O =(7BBB)H

2.  十六进制转化成八进制

例如: 9F6D4

第一步:十六进制 转换成 二进制       方法:一分为四法  

              9F6D4= 1001  1111 0110  1101 0100

                               9        F       6       D      4       

         (9F6D4)H = (1001 1111 0110 1101 0100)B

第二步:二进制转换成八进制          方法:取三合一法

             10 011 111 011 011 010 100  =  010 011 111 011 011 010 100

                                                                  2     3     7    3    3      2    4

  (10011111011011010100)B = (2373324)O

  所以:  (9F6D4)H  =  (2373324)O

注意:八进制与十六进制之间的转换,如果转换成十进制再转换成八进制或十六进制过程会非常繁琐,计算量比较大,如果转换成二进制会方便很多,建议采用转换成 二进制的方法

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

二进制、八进制、十进制、十六进制之间的相互转换 的相关文章

随机推荐

  • 关于springboot profiles

    在项目中会遇到项目环境变量切换到的问题 但是主要配置相同 只想切换部分的配置 可以在application yml配置所有的环境变量 然后在application dev yml配置dev中的环境变量 如果dev中没有配置会读取applic
  • tan x x的matlab求解,matlab画x=tan(x)

    matlab怎么解非线性方程 如tan x 4x x 2 4 equ sym tan x 4 x x 2 4 x solve equ gt gt xx 0再问 这只能求出一个解啊再答 还有其他解吗 matlab 求解tan x x 1 0
  • Rotated_Faster_Rcnn

    rotated faster rcnn 文章目录 训练 rpn head forward train rpn head forward rpn head loss rpn head get bboxes roi head forward t
  • mysql绿色版安装与卸载

    第一步 下载Mysql 官网下载地址 https dev mysql com downloads mysql 1 鼠标滑下来 找到Other Download中的 Windows x86 64 bit ZIP Archive 点击其右边的D
  • 第32步 机器学习分类实战:SHAP

    继续填坑 这回到SHAP 这个是选修 有兴趣可以看看 我们建立了十个ML模型 如果选出了Xgboost LightGBM Catboost这种树模型 大概率也是这些最厉害了 那就可以用SHAP进行模型可视化 1 首先 使用pip insta
  • 解决“The debugger has set two breakpoints at the same address 0x08xxxxx”问题

    今天来分享一个前段时间做项目适合遇到的一个bug 正好今天有空就拿出来跟大家分享一下 错误 首先 大家直接来看这个错误提示 这个错误是我在使用J Link调试时候出现的 上面的意思是 调试器在同一地址设置了两个断点 但是我检查了整个工程也没
  • 数据结构编程回顾(五)交通咨询系统设计

    题目五 交通咨询系统设计 设计要求 设计一个咨询交通系统 能让旅客咨询从任一个 城市到另一个城市之间的最短路径 里程 最低费用或者 最少时间等问题 对于不同的咨询要求 可以输入城市间路 程 所需时间或者所需费用 设计分3 个部分 1 建立交
  • QT connect第五个参数

    一 介绍 1 Qt AutoConnection 默认连接 连接类型在信号发出时确定 如果接收者和发送者在同一个线程 使用Qt DirectConnection类型 如果接收者和发送者不在一个线程 则使用Qt QueuedConnectio
  • 管理概论笔记

    前言 本文章属于在听课时做的笔记 第一周 管理导论 来源 管理概论 浙江大学 邢以群 MOOC 学习理论的目的是为了能够做没有学过的人做不了的事情或者比他们做得更好 一 管理及其功能 介绍什么是管理以及为什么需要管理 观念决定行为 行为决定
  • GBDT的正则化及与XGBOOST区别

    1 GBDT的正则化 和Adaboost一样 我们也需要对GBDT进行正则化 防止过拟合 GBDT的正则化主要有三种方式 第一种是和Adaboost类似的正则化项 即步长 learning rate 定义为 对于前面的弱学习器的迭代 fk
  • Shiro中Session和Cache

    Session是一种状态保持机制 参考文章Session是什么可知Session和Web服务也没有必然关系 Shiro本身的Security Manager也可以脱离Servlet自己管理Session 根据Security Manager
  • 13-3 动态链接库的编译和使用

    1 静态链接库与动态链接库 由于静态链接库不能共享 且依赖的符号的对应目标文件与主程序文件需要一同编译 故静态链接库内存空间占用较大 而动态链接库具有共享性质 通过特定路径即可引用 可以有效减少内存空间的占用 此外 可使用 ldd 命令查看
  • ubuntu16.04.1安装xrdp实现远程桌面访问

    之前测试过xfce4桌面 但是其实ubuntu16 04 1默认的unity桌面也是可以的 首先需要安装 tigervncserver 1 6 80 wget c http www c nergy be downloads tigervnc
  • python刷题第七周

    以下是有所收获的题目 第一题 第5章 2 图的字典表示 20 分 图的字典表示 输入多行字符串 每行表示一个顶点和该顶点相连的边及长度 输出顶点数 边数 边的总长度 比如上图0点表示 O A 2 B 5 C 4 用eval函数处理输入 ev
  • 服务器网站5m带宽在线多少人?

    同时访问一个网站的人数是在线的 这由许多因素决定 包括服务器带宽 质量和同时访问您的网站的人数有关的网站类型 若使用的是独享5M带宽 即5Mbit s 相应云服务器的数据最高传输速度应为5Mbit s x 1024 8 640KB 1分钟流
  • 面试官问:Redis 分布式锁如何自动续期?

    资深面试官 你们项目中的分布式锁是怎么实现的 老任 基于redis的set命令 该命令有nx和ex选项 资深面试官 那如果锁到期了 业务还没结束 如何进行自动续期呢 老任 这个 面试官 您上个问题是啥来着 资深面试官 你们项目中分布式锁是怎
  • springboot之乐观锁和悲观锁

    适用场景 悲观锁 比较适合写入操作比较频繁的场景 如果出现大量的读取操作 每次读取的时候都会进行加锁 这样会增加大量的锁的开销 降低了系统的吞吐量 乐观锁 比较适合读取操作比较频繁的场景 如果出现大量的写入操作 数据发生冲突的可能性就会增大
  • python_mysql

    pymysql模块 pip3 install pymysql pymysql使用流程 1 建立数据库连接 db pymysql connect 2 创建游标对象 cur db cursor 3 游标方法 cur execute insert
  • 网络安全-跨站请求伪造(CSRF)的原理、攻击及防御

    目录 简介 原理 举例 漏洞发现 链接及请求伪造 CSRF攻击 不同浏览器 未登录状态 登录状态 代码查看 工具 防御 用户 程序员 简介 跨站请求伪造 Cross site request forgery 也被称为 one click a
  • 二进制、八进制、十进制、十六进制之间的相互转换

    一 二进制 八进制 十六进制转换为十进制 方法 位权求和法 二进制用符号 B 表示 十进制用符号 D 表示 八进制用符号 O 表示 十六进制用符号 H 表示 100101 10111 B 1 2 5 0 2 4 0 2 3 1 2 2 0