数值转换:二进制、八进制、十六进制转换为十进制
一、基础内容
十进制:有十个基数 0,1,2,3,4,5,6,7,8,9
二进制:逢二进一,借一为二。
基数为0,1
八进制:逢八进一,借一为八。
基数为0,1,2,3,4,5,6,7
十六进制:逢十六进一,借一为十六。
基数为0,1,2,3,4,5,6,7,8,9,A(10),B(11),C(12),D(13),E(14),F(15)
二、转换方法
1、十进制与其他进制(二、八、十六)
十进制→ 二进制:十进制数除以二,除至0后,所得余数按照反方向写出即可。(如图所示)
十进制→ 八进制:十进制数逐次整除八,直至商为0,所得余数按照反方向写出即可。
(同理,把上图中2换成8计算即可)
十进制→ 十六进制:十进制数逐次整除十六,直至商为0,所得余数按照反方向写出即可,但要注意10及其以上的数字用字母A-F表示。
(同理,把上图中2换成16计算即可)
2、其他进制(二、八、十六)与十进制
注意:a---m方向为从右到左
二进制→十进制:a×20+b×21+c×22+d×23+…….+m×2(n-1)
例如:将二进制的(101011)转换为十进制的步骤如下:
1. 第0位 1 x 2^0 = 1;
2. 第1位 1 x 2^1 = 2;
3. 第2位 0 x 2^2 = 0;
4. 第3位 1 x 2^3 = 8;
5. 第4位 0 x 2^4 = 0;
6. 第5位 1 x 2^5 = 32;
7. 读数,把结果值相加,1+2+0+8+0+32=43
二进制位数(从右到左) |
第一位 |
第二位 |
第三位 |
第四位 |
第五位 |
第六位 |
第七位 |
第八位 |
对应的2的次方 |
2^0 |
2^1 |
2^2 |
2^3 |
2^4 |
2^5 |
2^6 |
2^7 |
对应结果 |
1 |
2 |
4 |
8 |
16 |
32 |
64 |
128 |
八进制→十进制:a×80+b×81+c×82+d×83+…….+m×8(n-1)
例如:将八进制的(53)转换为十进制的步骤如下:
1. 第0位 3 x 8^0 = 3;
2. 第1位 5 x 8^1 = 40;
3. 读数,把结果值相加,3+40=43(8)
八进制位数(从右到左) |
第一位 |
第二位 |
第三位 |
第四位 |
第五位 |
第六位 |
第七位 |
第八位 |
对应的8的次方 |
8^0 |
8^1 |
8^2 |
8^3 |
8^4 |
8^5 |
8^6 |
8^7 |
对应结果 |
1 |
8 |
64 |
512 |
4096 |
32768 |
262144 |
2097152 |
十六进制→十进制:a×160+b×161+c×162+d×163+…….+m×16(n-1)
例:将十六进制的(2B)转换为十进制的步骤如下:
1. 第0位 B x 16^0 = 11;
2. 第1位 2 x 16^1 = 32;
3. 读数,把结果值相加,11+32=43(16)
十六进制位数(从右到左) |
第一位 |
第二位 |
第三位 |
第四位 |
对应的16的次方 |
16^0 |
16^1 |
16^2 |
16^3 |
对应结果 |
1 |
16 |
256 |
4096 |
3、其他进制之间的转换
二进制→八进制:对于整数,采用从右到左每三位一组,不够三位的在其左边补齐0,每组单独转换出来即可。
例如:转换二进制数 1110101010100 那么分组为
001 110 101 010 100 按照转换方法对应转换
1 6 5 2 4
所以 1110101010100(2) = 16524(8)
八进制→二进制:将每位八进制由三位二进制数代替即可。
二进制与八进制编码对应表:
二进制 |
八进制 |
000 |
0 |
001 |
1 |
010 |
2 |
011 |
3 |
100 |
4 |
101 |
5 |
110 |
6 |
111 |
7 |
二进制→十六进制:此时分组为从右到左每 4 位二进制数为一组进行转换
例如:转换二进制 0101010100101011010,分组:
0010 1010 1001 0101 1010
2 A 9 5 A
所以0101010100101011010(2) = 2A95A(16)
十六进制→二进制:将每位十六进制由四位二进制数代替即可。
二进制和十六进制的互相转换比较重要。不过这二者的转换却不用计算,每个C,C++程序员都能做到看见二进制数,直接就能转换为十六进制,反之亦然。
首先我们来看一个二进制数:1111,它是多少呢?
你可能还要这样计算:1 * 2 + 1 * 2 + 1 * 2 + 1 * 2 = 1 * 1 + 1 * 2 + 1 * 4 + 1 * 8 = 15。
然而,由于1111才4位,所以我们必须直接记住它每一位的权值,并且是从高位往低位记,:8、4、2、1。即,最高位的权值为2^3 = 8,然后依次是 2^2 = 4,2^1=2, 2^0 = 1。
记住8421,对于任意一个4位的二进制数,我们都可以很快算出它对应的10进制值。
仅四位的二进制数 |
快速计算方法 |
十进制值 |
十六进制值 |
1111 |
8+4+2+1 |
15 |
F |
1110 |
8+4+2+0 |
14 |
E |
1101 |
8+4+0+1 |
13 |
D |
1100 |
8+4+0+0 |
12 |
C |
1011 |
8+0+2+1 |
11 |
B |
1010 |
8+0+2+0 |
10 |
A |
1001 |
8+0+0+1 |
9 |
9 |
…… |
|||
0001 |
0+0+0+1 |
1 |
1 |
0000 |
0+0+0+0 |
0 |
0 |
数值转换:二进制、八进制、十六进制转换为十进制相关推荐
- 十进制转换成十六进制c语言 链栈,C语言 链栈 实现十进制转换二进制,八进制,十六进制...
C语言 链栈 实现十进制转换二进制,八进制,十六进制 (3页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 11.90 积分 最后运行结果:代码:#incl ...
- C# 进制转换(二进制、十六进制、十进制互转) .
C# 进制转换(二进制.十六进制.十进制互转) 由于二进制数在C#中无法直接表示,所以所有二进制数都用一个字符串来表示 例如: 二进制: 1010 表示为 字符串:"1010" ...
- c语言中十进制转化二进制八进制十六进制,进制转换:二进制、八进制、十六进制、十进制之间的转换...
对于基础薄弱的读者,本节的内容可能略显晦涩和枯燥,如果觉得吃力,可以暂时跳过,用到的时候再来阅读.但是本节所讲的内容是学习编程的基础,是程序员的基本功,即使现在不学,迟早也要回来学. 上节我们对二进制 ...
- 将二进制、八进制、十六进制转换为十进制
上节我们对二进制.八进制和十六进制进行了说明,本节重点讲解不同进制之间的转换,这在编程中经常会用到,尤其是C语言. 将二进制.八进制.十六进制转换为十进制 二进制.八进制和十六进制向十进制转换都非常容 ...
- python十六进制转换成八进制_Python 进制转换 二进制 八进制 十进制 十六进制
全局定义一定不要丢了 全局定义 base = [str(x) for x in range()] + [ chr(x) for x in range(ord('A'),ord('A')+)] 二进制 ...
- c语言十进制转换成二进制八进制十六进制,十进制数转换成二进制,八进制,十六进制(c语言)...
利用一个函数实现十进制数转换成二进制,八进制,十六进制.利用的是栈的后进先出的思想.算法简单. #include #include #include #define STACK_INIT_SIZE 1 ...
- 十进制转二进制,八进制,十六进制(PHP)
<?php #使用:$var=e(数字,进制); function e($v,$l){ if($v>0&&in_array($l,array(2,8,16))){ $ ...
- 十进制转二进制 / 八进制 / 十六进制的手算方法,及其数学原理的通俗解释
前言:接触计算机的同学学习基础课程时,不免会碰到十进制转二进制 / 八进制 / 十六进制这种问题.常见的方法有"除以2/8/16看余数".本文在介绍方法的前提上,对其数学原理进行了 ...
- Unicode 码和汉字,十进制之间互转!二进制、十六进制,十进制的转换
2019独角兽企业重金招聘Python工程师标准>>> Unicode 码和汉字,十进制之间互转!二进制.十六进制,十进制的转换 用法文档这里就不介绍了!直接上代码 package ...
- C# 进制转换(二进制、十六进制、十进制互转)
C# 进制转换(二进制.十六进制.十进制互转) 二进制转十进制数 string i = "0010"; Console.WriteLine(Convert.ToInt32(i,2) ...
最新文章
- 图像与视频合成领域的集大成者,都在这里了!
- linux mysql 知乎_在 Linux 上安装 MariaDB 或 MySQL | Linux 中国
- MySQL · 引擎特性 · InnoDB COUNT(*) 优化(?)
- thymeleaf公共页面元素抽取 || 引入片段的时候传入参数
- java cpu 内存_如何检查Java中的CPU和内存使用情况?
- 前端学习(16):跳转链接小练习
- RedHat Linux安装Informix v10.x(图文详解)
- ODOO从哪里开始??OpenERP的第一根线头儿
- AVIator -- Bypass AV tool
- 利用Python网络爬虫抓取微信好友的签名及其可视化展示
- 前端性能优化的常用手段
- 很好的--张量(Tensor)的技术以及它在不同场景中的应用--转载贪心科技
- html5打开页面直接取纬度,html5获取不了经度和纬度
- 美的苏宁“超级带货趴”来袭,养成带货达人,大牌净味冰箱带回家
- 工作岗位必备技能总结
- dbd mysql db_mysqlhotcopy备份时出现“DBD::mysql::db do faile\问题-huifeideluotuo-ChinaUnix博客...
- 推动功能性农业发展 国稻种芯-万祥军:农业大健康理念形成
- Odoo与浪潮合资研发PS Cloud之如何销售配饰及选购产品(交叉销售)
- 大数据第二阶段Python基础编程学习笔记(待完善)
- Eformer: Edge Enhancement based Transformer for Medical Image Denoising
热门文章
- Airsim动态 | ROS教程(AirSim ROS Tutorial)
- 【matlab数字图像处理】数字图像处理中的坐标系
- 奇迹1.03H服务端开服架设文件Data文件详解
- 极客DIY:廉价电视棒玩转GNSS-SDR,实现GPS实时定位
- 安卓ttf格式的字体包_字体 | 新游黑体(游)精巧的日系字体~
- 安徽大学836数字电路与逻辑设计考研历年真题库资料
- 俞军老师:适合产品经理的10本书 | 2019收藏版
- BUCK降压电路和BOOST升压电路
- visual studio设置背景颜色为眼睛保护色
- python123汉诺塔实践_python汉诺塔问题