c 语言八进制与十进制转换,C 语言进制之间的转换
二进制、八进制和十六进制向十进制转换都是非常容易的,就是“按权相加”。
所谓“权”,也即“位权”。例如,十进制第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 语言进制之间的转换相关推荐
- 二进制,八进制,十进制,十六进制,进制之间的转换法则及规律。
进位制/位置计数法是一种记数方式,故亦称进位记数法/位值计数法,可以用有限的数字符号代表所有的数值.可使用数字符号的数目称为基数(en:radix)或底数,基数为n,即可称n进位制,简称n进制.现在最 ...
- matlab二进制十进制十六进制和任意进制之间的转换
>> a=bin2dec('1011001') %将二进制转换为10进制 a = 89 >> b=dec2bin(22) %将10进制转换为2进制 b = 10110 & ...
- c 语言转换成php语言,C++_C 语言进制之间的转换,二进制、八进制和十六进制向 - phpStudy...
C 语言进制之间的转换 二进制.八进制和十六进制向十进制转换都是非常容易的,就是"按权相加". 所谓"权",也即"位权".例如,十进制第1位 ...
- C++控制不同进制输出(二进制,八进制,十进制,十六进制)各种进制之间的转换
目录 1.输出(头文件讲解) 2.格式控制 常用的I/O流控制符 4.各种进制之间的转换(进制大乱斗) 4.1.写在前面 4.2整体框架搭建 4.3菜单函数 4.4用户输入选择(main函数体中) 4 ...
- C语言学习之路--计算机系统组成以及工作原理,进制之间的转换和机器数及其表示范围
目录 一.前言 二.计算机系统组成以及工作原理简介 1.硬件系统基本组成原理及工作原理 2.硬件各部分详解 1.运算器 2.控制器 CPU 3.存储器 1.内存储器 2.外存储器 3.拓展 4.存储器 ...
- C语言实现不同进制之间的转换
C语言实现不同进制之间的转换 说明 运行环境 1.十进制转二进制 2.二进制转换成十进制数 3.十进制数转换成十六进制数 4.十六进制数转换成十进制数 说明 1.进制转换目前只限于非负数之间的转换(带 ...
- 二进制-八进制-十进制-16进制之间的转换
进制之间的转换 主要用到连个函数: Convert.ToInt32(str,numbased):将字符串转成str,按照numbeased指定的进制转成10进制数: Convert.ToString( ...
- 一篇关于不同进制之间的转换、比如二进制、八进制、十进制、十六进制等
1.其他进制转十进制二进制转十进制计算公式:从最低位开始(右边起),将每个位上的数提取出来,乘于2的(位数-1)次方,然后求和1101 =1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8 ...
- 数据类型的划分和进制之间的转换方式(二进制,十进制,八进制,十六进制)
数据类型的划分 值类型(13种) 值存储在堆栈中 存储空间小 调用速度快 a. 值类型变量可以直接分配给一个值.它们是从类 System.ValueType 中派生的. b. 值类型直接存储其值 c. ...
- 十进制数与N进制数据的转换
十进制数与N进制数据的转换 问题描述:将从键盘输入的十进制数转换为N(如二进制.八进制.十六进制)进制数据. #include<iostream> using namespace std; ...
最新文章
- 美国法官驳回特朗普工作签禁令:超出权职范围
- 甘肃宕昌山货“触网”外销:山民乐衷创业“等客来”
- 0821Cache Buffers chains与共享模式疑问4
- java中文件选择对话框
- 用Broadcast广播在activity之间、fragment之间、activity和fragment之间相互传数据
- 使用gradle多渠道打包
- React Native在Android当中实践(五)——常见问题
- linux jdk安装
- MyEclipse开启服务器时总是进入Debug模式
- 测试苹果手机主板软件,iphone手机硬件检测工具使用方法
- 数据库设计——概念模型
- html5简单幻灯片图片转换,清新简洁的HTML5幻灯片- SLIDESHOW CANVAS JQUERY
- 蓝桥杯 人民币金额大写 格式转换
- java的下标循环_java的for下标循环遍历和foreach循环遍历测试
- Win32无边框窗口
- php遍历数组查询数据库,php如何遍历数据库查询数组
- ios上safari的事件模型(一)
- 华为悦盒EC6108V9通刷固件及教程
- #入坑keychron#Macbook外置机械键盘的不二之选-keychron
- ueditor编辑器遇到的问题