-
2021-11-18 19:53:40
十六进制与十进制的转换②
十进制和十六进制表示之间的转换需要使用乘法或者除法来处理一般情况。
将一个十六进制数字转换为十进制数字,我们可以用相应的16的幂乘以每个十六进制数字。
比如 0x7AF,我们计算它对应的十进制为
7·16²+10·16+15
=10·16+15
=1792+160+15
=1967刚开始我也没转过来弯,后面自己是这么算的。咱们看,十六进制0x7AF是三位数字,我们为什么是7乘16²而不是16³呢,因为我们乘十六的多少次方的时候,次方最高位要比十六进制数字少一位,十六进制最高位乘以次方最高位(比进制数字少一位)依次加乘下去,直到进制数字最低为乘以16º,就可以了,最终的结果就是十六进制转换十进制的结果。
*以上仅是我刚开始学的时候自己的通俗理解。更多相关内容 -
C语言十六进制转换成十进制(代码),可将数组内的十六进制数转换后并存入数组
2021-04-12 10:15:17十六进制转换十进制原理介绍 十六进制转换为十进制,是先要将十六进制转换为二进制,在通过二进制转换为十进制。 十六进制转换为二进制很简单,我们首先要明白,一位十六进制代表四位二进制,如F对应二进制的1111,A...十六进制转换十进制原理介绍
十六进制转换为十进制,是先要将十六进制转换为二进制,在通过二进制转换为十进制。
十六进制转换为二进制很简单,我们首先要明白,一位十六进制代表四位二进制,如F对应二进制的1111,A代表二进制的1010,利用这种一一对应的关系,很容易就把十六进制转换为二进制,如0x1F6C,其中十六进制1对应二进制0001,十六进制F对应二进制1111,十六进制6对应二进制0110,十六进制C对应二进制1100,那么十六进制数0x1F6C对应的二进制数就是0001 1111 0110 1100。
得到对应的二进制数后,再将二进制转换为十进制,这一步就更简单了,只需要套一个公式即可,二进制右边为低位,左边为高位,最右边的第一个数代表2的0次方,自右往左依次递增,1、2、3、4…,十六位的二进制数最高位就是2的16 - 1 = 15次方(因为最低位从0开始),将二进制每一位上的数作为系数,与该位对应的次方相乘,再将所有位算得的结果相加,最后得到的数便是二进制对应的十进制数。我们拿0001 1111 0110 1100为例,公式便为 f = 0 ∗ 2 0 + 0 ∗ 2 1 + 1 ∗ 2 2 + 1 ∗ 2 3 + 0 ∗ 2 4 + 1 ∗ 2 5 + 1 ∗ 2 6 + 0 ∗ 2 7 + 1 ∗ 2 8 + 1 ∗ 2 9 + 1 ∗ 2 1 0 + 1 ∗ 2 1 1 + 1 ∗ 2 1 2 + 0 ∗ 2 1 3 + 0 ∗ 2 1 4 + 0 ∗ 2 1 5 f = 0*2^0 + 0*2^1+1*2^2 + 1*2^3+0*2^4 + 1*2^5+1*2^6 + 0*2^7+1*2^8 + 1*2^9+1*2^10 + 1*2^11+1*2^12 + 0*2^13+0*2^14 + 0*2^15 f=0∗20+0∗21+1∗22+1∗23+0∗24+1∗25+1∗26+0∗27+1∗28+1∗29+1∗210+1∗211+1∗212+0∗213+0∗214+0∗215最后算得f = 8044,那么8044就是二进制0001 1111 0110 1100所对应的十进制数,同样也是十六进制数0x1F6C对应的十进制数。
我们通篇以十六位的数来讲解的,其余位的数举一反三即可,原理相同。代码实现
有了相关的知识之后,我们便可以很容易将代码实现
#include "stdio.h" #include "math.h" unsigned short int DecData_16[4]; //用于存储十进制数,数组的大小根据自己的实际情况进行修改 /* -------------------十六进制(十六位)转换为十进制--------------------- */ void Hex2Dec_16(unsigned short int* temp) { for(int i = 0;i < 4;i++) //这里是4个十六进制数,所以只循环四次,根据自己的实际情况修改 { unsigned short int Hex = temp[i]; unsigned short int Dec = 0; for(int j = 0;j < 16;j++) //16表示一个十六进制数一共16位,根据自己的实际情况进行修改 { if(Hex & 0x0001) //判断十六进制数对应的二进制的最后是0还是1,所以十六进制转换为二进制这一步工作代码暗中就已经实现了 { Dec += pow(2,j); pow(2,j)是math.h头文件里的库函数,进行次方运算 Hex >>= 1; //这里的移位操作是对十六进制对应的二进制进行操作,不需要我们进行转换 } else //如果最后一位不是1 { Dec += 0; //则加0 Hex >>= 1; } } DecData_16[i] = Dec; } }
到此为止我们便实现了十六进制到十进制的转换,关于十进制转换为十六进制,请参考链接: STM32 十进制转换成十六进制的实现(有例程),在Keil5里面用C语言实现,不用scanf函数.
-
逐浪字体大师的UNI转码之Excel将十六进制转换成十进制的方法
2022-04-17 21:14:56最近在做字体大师,一款可以快速通过网页进行字体设计,从而生成字体的开放工具,部署于v.ziti163.com,效果如下: 因为其中C#需要调用字符码,其读取的是10进制,而...十六进制的范围包括0、1、2、3、4、5、6、7、最近在做字体大师,一款可以快速通过网页进行字体设计,从而生成字体的开放工具,部署于v.ziti163.com,效果如下:
因为其中C#需要调用字符码,其读取的是10进制,而字体的unicode码是16进制,这其中涉及一个转换。
由于逐浪字库涉及字体有上万个字符,逐一个转换就显然很吃力,有没有方法快速呢?答案是有。
但有没有简单的方法呢?
答案也是有。
那就是我们常用的excel,使用其中的HEX2DEC
函数,位于EXCEL-公式-其它函数-工程中。十六进制的范围包括0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,其中A-F分别表示十进制数字10-15,逢十六进一,下面介绍下Excel中利用函数HEX2DEC将十六进制转换成十进制
打开一张工作表,输入一个十六进制的数:
在工具栏中找到公式,其他函数:
点击其他函数的下三角,选择工程里面的HEX2DEC
调出函数参数页面,单击选择A1的单元格数据,点击确定,该十六进制的数就转换成了十进制了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-62nQ4egV-1650201223011)(https://www.z01.com/UploadFiles/Anony/content/md/9E6OhZoZVJ.jpg “在这里插入图片描述”)]
来看下具体转换成果:
附:
Unicode字符以16进制表示 Unicode字符以 16进制表示
- int(x [,base ]) 将x转换为⼀个整数
- long(x [,base ]) 将x转换为⼀个长整数
- float(x ) 将x转换到⼀个浮点数
- complex(real [,imag ]) 创建⼀个复数
- str(x ) 将对象 x 转换为字符串
- repr(x ) 将对象 x 转换为表达式字符串
- eval(str ) ⽤来计算在字符串中的有效Python表达式,并返回⼀个对象
- tuple(s ) 将序列 s 转换为⼀个元组
- list(s ) 将序列 s 转换为⼀个列表
- chr(x ) 将⼀个整数转换为⼀个字符
- unichr(x ) 将⼀个整数转换为Unicode字符
- ord(x ) 将⼀个字符转换为它的整数值
- hex(x ) 将⼀个整数转换为⼀个⼗六进制字符串
- oct(x ) 将⼀个整数转换为⼀个⼋进制字符串
Unicode字符转16进制: hex(ord(u"字"))
更多可见 https://www.z01.com/Item/3795
-
十进制转换成十六进制
2021-11-20 23:43:42“除R取余法”:十进制整数转换成R进制整数,可用十进制整数连续地除以R,每次除法获得的余数即为相应R进制数一位,最后商为零时,按逆序输出结果。 例如十进制数92转换为十六进制即为5C。 解析:设a为余数,b为商...给出一个无符号的十进制的正整数N,求这个数N的十六进制。
“除R取余法”:十进制整数转换成R进制整数,可用十进制整数连续地除以R,每次除法获得的余数即为相应R进制数一位,最后商为零时,按逆序输出结果。
例如十进制数92转换为十六进制即为5C。
解析:设a为余数,b为商。
a=92%16=12,b=92/16=5,这时候,第一个余数是12.
a=5%16=5,b=5/16=0。第二个余数为5。
由十六进制可知,12对应的是C,所以92的十六进制数为5C。
代码如下:
#include<bits/stdc++.h> using namespace std; int main(){ int N; int i=0; int t; char a[100]; char b[20]="0123456789ABCDEF"; cin>>N; if(N==0){ cout<<'0';//要考虑0的情况 } while(N!=0){ t=N%16;//取余 a[i]=b[t];//如例题,第一个余数是12,则b[12]=C,与b数组里的字符对应相等,再用一个a数组来存放这个值 N/=16; i++; } for(int j=i-1;j>=0;j--){ //逆序输出数组a里的值 cout<<a[j]; } return 0; }
-
十进制转换十六进制
2021-08-28 09:43:35十进制转换十六进制 将一个十进制数字x转换为十六进制,可以反复用16除 x,得到一个商 q 和一个余数 r,也就是 x=q·16+r。然后,我们用十六进制数字表示 r 作为最低位数字,并且通过对 q 反复进行这个过程得到剩下... -
C++——进制转换——十进制转十六进制
2020-05-24 19:48:23输入-一个十进制的整数,输出该数的十六进制表示。 输入 输入数据有多组,第一个数表示数据的组数n. 然后是n个十进制数 输出 输出为n行,每行一个对应的十六进制数。其中大于等于10的数字用大写英文字母ABCDEF... -
十进制与十六进制互相转换
2020-07-25 09:33:47与十进制转二进制方法相同,十六进制数用0~9和A,B,C,D,E,F进行表示,用短除法进行计算,例如将120转化成十六进制数 120÷16=7 余8 7÷16=0 余7 故十六进制数为78 二、十六进制转十进制 与二进制转十六进制数方法相同... -
二、八、十、十六进制转换(图解篇)
2017-11-14 21:49:06各种进制的用途 10进制,当然是便于我们人类来使用,我们从小的习惯就是使用十进制,这个毋庸置疑。 2进制,是供计算机使用的,1,0代表开和关,有和无,机器只...二进制、八进制、十进制、十六进制之间的转换 ht -
C语言中十六进制转十进制两种实现方法
2021-05-21 10:03:37C语言中十六进制转十进制两种实现方法C语言 · 十六进制转十进制问题描述从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、... -
十六进制取补码转十进制
2015-12-15 15:49:04十个八位十六进制数字,装换为二进制,然后取其补码,然后求其平均值。用c编写,代码稍微有点问题,大家可以完善下 -
十六进制补码转换为十进制数总结
2022-01-06 09:41:27如上例中,我们看到,十六进制的0x80通过单字节表示(char) 或者通过4字节表示(%X)0xFFFFFF80 转化为十进制数都是-128. 过程分析: 四字节分析: 0xFFFFFF80 = 0x7F(127) 0xFFFFFF80 = 0xFFFFFFFF - 0x7F... -
十六进制相关(计算机存储十六进制负数、与十进制转换)
2018-11-30 09:24:45负数的十六进制表示 刚开始没多思考,不知道如何表示负数。 原码 反码 补码 在计算机中,数据是以补码的形式存储的。 正数的原码,补码,反码都相同,都等于它本身 负数的补码是:符号位为1,其余各位求反,末位... -
十六进制转十进制C语言实现
2022-02-17 11:48:33C语言实现 八位以内的十六进制转化为10进制 -
进制转换(二进制、十进制、十六进制)
2021-07-30 20:33:47一、二进制 十进制和十六进制 X进制 逢X进1 数制的计算 二、数制的转换 十进制--->二进制 十进制--->十六进制 二进制--->十进制 二进制--->十六进制 十六进制--->二进制 十六进制--->十... -
计算机基础进制转换(二进制、八进制、十进制、十六进制)
2018-09-07 22:27:17十进制整数转换成二进制采用“除2倒取余”,十进制小数转换成二进制小数采用“乘2取整”。 例题: 135D = __ B 解析:如下图所示,将135除以2,得余数,直到不能整除,然后再将余数从下至上倒取。得到结果:1000 ... -
8086系列(20):十六进制到十进制的转换程序
2020-12-02 21:50:05十六进制到十进制的转换程序(通过寄存器传送变量),要求从键盘上输入0-FFFFH的十六进制正数转化为十进制数并在屏幕上显示出来。 思路 先写主程序框架,首先需要把输入的十六进制数(字符串)转化为二进制数存在bx中... -
Java 中二进制转换成十六进制的两种实现方法
2021-04-23 13:41:39Java 中二进制转换成十六进制的两种实现方法每个字节转成16进制,方法1/*** 每个字节转成16进制,方法1** @param result*/private static String toHex(byte[] result) {StringBuffer sb = new StringBuffer(result.... -
求VB用:计算机中计算器的十六进制转换为十进制的代码
2021-06-30 03:32:06满意答案 fzszsjx 2013.06.20 采纳率:40% 等级:12 已帮助:9082人 ...B End Function Private Sub Command1_Click() '将text1里面的十六进制数转化为十进制 Text1.Text = HEX_to_DEC(Text1.Text) End Sub 00分享举报 -
十六进制的浮点数转化为十进制
2021-08-25 14:16:19这里写自定义目录标题转化公式新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左...* 十进制 -15.666 -
二进制 八进制 十进制 十六进制 之间进制转换(图解篇)
2018-11-13 10:22:49(二、八、十六进制) → (十进制) 二进制 → 十进制 八进制 → 十进制 十六进制 → 十进制 (十进制) → (二、八、十六进制) 十进制 → 二进制 十进制 → 八进制 十进制 → 十六进制 ... -
二进制,八进制,十进制,十六进制转换算法
2020-08-17 16:51:44之前使用SQL把十进制的整数转换为三十六进制,SQL代码请参考:SQL Server 进制转换函数,其实它是基于二、八、十、十六进制转换的计算公式的,进制之间的转换是很基础的知识,但是我发现网络上没有一篇能把它说的... -
进制转换:十六进制转十进制
2021-05-26 13:24:35十六进制转换成十进制的...3、十六进制转换成十进制的公式是:要从右到左用二进制的每个数去乘以16的相应次方,然后这些数字相加就是了。 例1:2AF5换算成10进制: 第0位: 5 * 16^0 = 5 第1位: F * 16^1 =15*16^1= 2 -
c语言:十六进制转化为十进制
2019-02-21 21:36:48十六进制是由数字1到9或者是字母a(A)到字母f(F),其中字母a代表数字10,字母f代表数字15 下面通过代码: #include <stdio.h> #include <string.h> #define N 100 int i; int main(){ int ... -
Python进制转换(二进制、十进制和十六进制)
2020-12-11 03:06:35int(str,n=10) def bin2dec(string_num): return str(int(string_num, 2)) # hex2dec # 十六进制 to 十进制 def hex2dec(string_num): return str(int(string_num.upper(), 16)) # dec2bin # 十进制 to 二进制: bin... -
IEEE-754十六进制浮点数转换十进制浮点数
2019-08-20 08:30:18a=(int(input('请输入16进制浮点数数据:'),16)) b=bin(a) print(mConvertTo(b)) 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以... -
十六进制转换十进制算法
2016-07-14 15:43:26比如说。...十六进制已开头 0x 表示 计算机表达 0x12 ^表示次方 计算公式: 拆分数字 * 16 ^ (数字位置-1) 如何进行去换算。 单独把 12 拎出来 12 的十六进制= 1*16^1 + 2*16^0 = 16 + 2 = 18 -
Python 二进制,十进制,十六进制转换
2020-10-12 21:29:54进制转换 -
十六进制带小数转换成十进制
2017-12-11 21:59:00十六进制数转换成十进制数时,先用加权求和的方式表示出来,再将十六进制数中的基数“10H”替换成对应的十进制数值“16”,同时也将十六进制数中的A、B、C、D、E、F替换成对应的十进制数值10、11、12、13... -
进制转换(二进制、八进制、十进制、十六进制)涵盖整数与小数部分,超详细
2020-08-05 22:48:22今天来总结一下各种进制转换问题,详细齐全易于理解,希望对你有帮助哦! 先从我们最熟悉的十进制入手吧,其他进制与十进制的转换方法都是一样的,保证能全部记住!...一、十进制转换成二进制、八进制、十六进制 -
十六进制转十进制(c语言)
2019-01-27 21:34:46输入的十六进制数,通过字符型存放在a[]数组中。首先将字符型转为int型(将a转为10等等)存放在b[]数组中。在与10^n相乘在相加得出结果。 #include<stdio.h> #include<math.h> //16...