二进制、八进制和十六进制向十进制转换都是非常容易的,就是“按权相加”。

所谓“权”,也即“位权”。例如,十进制第1位的位权为100=1,第2位的位权为101=10,第3位的位权为102=100;而二进制第1位的位权为20=1,第2位的位权为21=2,第3位的位权为22=4。设数字所采用的进制为N(基数也是N),那么第 i 位的位权为 N(i-1)。

不同进制转换为十进制举例:

二进制:1001 = 1×23 + 0×22+ 0×21 + 1×20 = 8 + 0 + 0 + 1 = 9

二进制:101.1001 = 1×22 + 0×21+ 1×20+ 1×2-1+ 0×2-2 + 0×2-3 + 1×2-4= 4 + 0 + 1 + 0.5 + 0 + 0 + 0.0625 = 5.5625

八进制:0302 = 3×82 + 0×81+ 2×80 = 192 + 0 + 2 = 194

八进制:0302.46 = 3×82 + 0×81 + 2×80 + 4×8-1 + 6×8-2 = 192 + 0 + 2 + 0.5 + 0.09375= 194.59375

十六进制:0Xea7 = 14×162 + 10×161 + 7×160= 3751

十进制转换为二进制——辗除法

上节的表格中给出了简单的十进制和二进制的转换关系,要想获得更多的转换关系,可以使用辗除法。辗除法也就是“除模取余”法。除模取余就是将一个几进制的数转化成另一个进制时, 另一个进制的基数就是模,用将要转化的进制数除以模,取它的余数。

下图以十进制的“19”转换为二进制为例进行讲解:

如图所示,以2为除数,一直相除下去,直到商为0,余数则为求得的二进制数。

注意:余数要倒序排列,也就是说,最先求得的余数排在二进制的最后面,最后求得的余数排在二进制的最前面。上面的例子中,最后求得的二进制数为 10011。

虽然其他进制也可以按照辗除法来转换,但是比较麻烦,下面介绍更简单的方法。

二进制和八进制的转换

二进制向八进制的转换是每三位二进制数转换为一位八进制数,运算的顺序是从低位向高位依次进行,高位不足三位用零补充。以二进制“1011101”为例,如下图所示:

转换的结果为:1011101 = 0135

八进制向二进制转换的思路是八进制的一位转换为二进制的三位,运算的顺序是从低位向高位依次进行。同样以八进制“0135”为例,如下图所示:

转换的结果为:0135 = 1011101

二进制和十六进制的转换

二进制向十六进制转换时,四位转换成十六进制的一位,运算的顺序是从低位向高位依次进行,高位不足四位用零补。以“1110011”转换成十六进制为例,如下图所示:

转换的结果为:1001011101 = 0X25D

十六进制向二进制转换,就是把十六进制的一位转换成二进制的四位,注意运算的顺序是从低位向高位依次进行。同样以十六进制“0X25D”为例,如下图所示:

以上就是对 C语言进制直接转化做的一个资料整理,学习进制转换的朋友可以参考下

c 语言八进制与十进制转换,C 语言进制之间的转换相关推荐

  1. 二进制,八进制,十进制,十六进制,进制之间的转换法则及规律。

    进位制/位置计数法是一种记数方式,故亦称进位记数法/位值计数法,可以用有限的数字符号代表所有的数值.可使用数字符号的数目称为基数(en:radix)或底数,基数为n,即可称n进位制,简称n进制.现在最 ...

  2. matlab二进制十进制十六进制和任意进制之间的转换

    >> a=bin2dec('1011001')   %将二进制转换为10进制 a = 89 >> b=dec2bin(22)  %将10进制转换为2进制 b = 10110 & ...

  3. c 语言转换成php语言,C++_C 语言进制之间的转换,二进制、八进制和十六进制向 - phpStudy...

    C 语言进制之间的转换 二进制.八进制和十六进制向十进制转换都是非常容易的,就是"按权相加". 所谓"权",也即"位权".例如,十进制第1位 ...

  4. C++控制不同进制输出(二进制,八进制,十进制,十六进制)各种进制之间的转换

    目录 1.输出(头文件讲解) 2.格式控制 常用的I/O流控制符 4.各种进制之间的转换(进制大乱斗) 4.1.写在前面 4.2整体框架搭建 4.3菜单函数 4.4用户输入选择(main函数体中) 4 ...

  5. C语言学习之路--计算机系统组成以及工作原理,进制之间的转换和机器数及其表示范围

    目录 一.前言 二.计算机系统组成以及工作原理简介 1.硬件系统基本组成原理及工作原理 2.硬件各部分详解 1.运算器 2.控制器 CPU 3.存储器 1.内存储器 2.外存储器 3.拓展 4.存储器 ...

  6. C语言实现不同进制之间的转换

    C语言实现不同进制之间的转换 说明 运行环境 1.十进制转二进制 2.二进制转换成十进制数 3.十进制数转换成十六进制数 4.十六进制数转换成十进制数 说明 1.进制转换目前只限于非负数之间的转换(带 ...

  7. 二进制-八进制-十进制-16进制之间的转换

    进制之间的转换 主要用到连个函数: Convert.ToInt32(str,numbased):将字符串转成str,按照numbeased指定的进制转成10进制数: Convert.ToString( ...

  8. 一篇关于不同进制之间的转换、比如二进制、八进制、十进制、十六进制等

    1.其他进制转十进制二进制转十进制计算公式:从最低位开始(右边起),将每个位上的数提取出来,乘于2的(位数-1)次方,然后求和1101 =1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8 ...

  9. 数据类型的划分和进制之间的转换方式(二进制,十进制,八进制,十六进制)

    数据类型的划分 值类型(13种) 值存储在堆栈中 存储空间小 调用速度快 a. 值类型变量可以直接分配给一个值.它们是从类 System.ValueType 中派生的. b. 值类型直接存储其值 c. ...

  10. 十进制数与N进制数据的转换

    十进制数与N进制数据的转换 问题描述:将从键盘输入的十进制数转换为N(如二进制.八进制.十六进制)进制数据. #include<iostream> using namespace std; ...

最新文章

  1. 美国法官驳回特朗普工作签禁令:超出权职范围
  2. 甘肃宕昌山货“触网”外销:山民乐衷创业“等客来”
  3. 0821Cache Buffers chains与共享模式疑问4
  4. java中文件选择对话框
  5. 用Broadcast广播在activity之间、fragment之间、activity和fragment之间相互传数据
  6. 使用gradle多渠道打包
  7. React Native在Android当中实践(五)——常见问题
  8. linux jdk安装
  9. MyEclipse开启服务器时总是进入Debug模式
  10. 测试苹果手机主板软件,iphone手机硬件检测工具使用方法
  11. 数据库设计——概念模型
  12. html5简单幻灯片图片转换,清新简洁的HTML5幻灯片- SLIDESHOW CANVAS JQUERY
  13. 蓝桥杯 人民币金额大写 格式转换
  14. java的下标循环_java的for下标循环遍历和foreach循环遍历测试
  15. Win32无边框窗口
  16. php遍历数组查询数据库,php如何遍历数据库查询数组
  17. ios上safari的事件模型(一)
  18. 华为悦盒EC6108V9通刷固件及教程
  19. #入坑keychron#Macbook外置机械键盘的不二之选-keychron
  20. ueditor编辑器遇到的问题

热门文章

  1. 关于Xcode7中的tbd文件
  2. ffmpeg推流时报错 Unknown encoder 'libx264'
  3. Mac下的HALCON安装与License文件下载
  4. 【MySQL】一条SQL查询本年度每月即将退休的人数?
  5. ffmpeg 调用 NVIDIA GPU 处理视频转码,笔记。和纯用CPU比起来,速度快5倍以上
  6. pdf怎么转换为word文档?简单三步搞定pdf转word
  7. cocos2d-x V3.0 调用重力加速器 Acceleration
  8. 垂直搜索引擎 nutch
  9. CSS实现中英文混合打字效果实现
  10. WIN2000下的MSCONFIG