十六进制转换成十进制的具体算法?

发布网友 发布时间:2022-04-21 20:10

我来回答

12个回答

懂视网 时间:2022-04-22 11:37

16进制就是逢16进1,但只有0到9这十个数字,所以用A、B、C、D、E、F这五个字母来分别表示10、11、12、13、14、15,字母不区分大小写。十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方以此类推。

  十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F(或a到f)表示。其中:A到F表示10到15,这些称作十六进制数字。进制也就是进位计数制,是人为定义的带进位的计数方法(有不带进位的计数方法,比如原始的结绳计数法,唱票时常用的“正”字计数法,以及类似的tally mark计数)。 对于任何一种进制---X进制,就表示每一位置上的数运算时都是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。

  

  进位制/位置计数法是一种记数方式,故亦称进位记数法/位值计数法,可以用有限的数字符号代表所有的数值。可使用数字符号的数目称为基数(en:radix)或底数,基数为n,即可称n进位制,简称n进制。现在最常用的是十进制,通常使用10个阿拉伯数字0-9进行记数。

热心网友 时间:2022-04-22 08:45

十六进制转换成十进制的具体算法是:

1、首先明白16进制数(从右到左数是第0位,第1位,第2位……)的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方,依次这样排列下去。

2、明白ABCDEF表示的二进制数字分别是10,11,12,13,14,15。

3、十六进制转换成十进制的公式是:要从右到左用二进制的每个数去乘以16的相应次方,然后这些数字相加就是了。

在进行进制转换时有一基本原则:

转换后表达的“量”的多少不能发生改变。二进制中的111个苹果和十进制中的7个苹果是一样多的。

十进制中的数位排列是这样的…… 万 千 百 十 个 十分 百分 千分……

R进制中的数位排列是这样的……R^4 R^3R^2 R^1 R^0 R^-1 R^-2 R^-3……

可以看出相邻的数位间相差进制的一次方。

热心网友 时间:2022-04-22 10:03

(一)十六进制化为十进制方法:
用个位数+十位数*16+百位数*256+千位数*4096+...相乘的时候,前面的一位数乘以的数是十后面一位数乘以数的16倍.

具体案例如下:

(AB)=A×16+B=(171)

(ABC)=A×256+B×16+C=(2748)

(二)十进制化为十六进制的方法

把十进制转十六进制按照除16取余,直到商为0为止。(具体用法如下图)

热心网友 时间:2022-04-22 11:37

十六进制转换成十进制的具体算法是:

1、首先明白16进制数(从右到左数是第0位,第1位,第2位……)的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方,依次这样排列下去。

2、明白ABCDEF表示的二进制数字分别是10,11,12,13,14,15。

3、十六进制转换成十进制的公式是:要从右到左用二进制的每个数去乘以16的相应次方,然后这些数字相加就是了。

例1:2AF5换算成10进制:

第0位: 5 * 16^0 = 5

第1位: F * 16^1 =15*16^1= 240

第2位: A * 16^2= 10* 16^2=2560

第3位: 2 * 16^3 = 8192

结果就是:5 * 16^0 + 15 * 16^1 + 10 * 16^2 + 2 * 16^3 = 10997

例2:CE换算成10进制:

第0位:E*16^0=14*16^0=14

第1位:C*16^1=12*16^1=192

结果就是:14*16^0+12*16^1=206

拓展资料

16进制即逢16进1,每一位上可以是从小到大为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F共16个大小不同的数。16进制转换即16进制与其他不同进制之间的换算转换。

热心网友 时间:2022-04-22 13:29

十六进制转十进制:

从个位起第i位乘以16的i-1次方

比如

0x233 = 2*16^2 + 3*16^1 + 3*16^0 = 512 + 48 + 3 = 563

0x666 = 6*16^2 + 6*16^1 + 6*16^0 = 1536 + 96 + 6 = 1638

0x7FFF = 7*16^3+15*16^2+15*16^1+15*16^0=28672+3840+240+15=32767

十进制转十六进制:

除十六取余数

比如

233 ÷ 16 = 14 ......9

14 ÷ 16 = 0 ......14

倒着写就是0xE9

32768 ÷ 16 = 2048 ......0

2048 ÷ 16 = 128......0

128 ÷ 16 = 8......0

8 ÷ 16 = 0......8

倒着写就是0x8000

算法实现:

十六进制转十进制:


#include<stdio.h>
#include<string.h>
char buf[20];
int len,_pow,ans=0;
int trans(char hex)
{
if (hex>='0'&&hex<='9') return hex-48;
if (hex>='a'&&hex<='f') return hex-87;
if (hex>='A'&&hex<='F') return hex-55;
return 0;
}
int main(){
scanf("%s",buf);
len = strlen(buf);
_pow = 1;
for (int i=len-1;i>=0;i--)
{
ans = ans + trans(buf[i]) * _pow;
_pow = _pow << 4;
}
printf("%d\n",ans);
return 0;
}

十进制转十六进制:

#include<stdio.h>
char trans(int deci)
{
if (deci<10) return deci+48;
return deci+55;
}
int n,len=0;
char hex[20];
int main(){
scanf("%d",&n);
while(n)
{
hex[len++] = trans(n&15);
n=n>>4; 
}
for (int i=len-1;i>=0;i--)
putchar(hex[i]);//跟手算一样,要倒着输出
return 0;
}

热心网友 时间:2022-04-22 15:37

16进制到十进制的转换方法:
16进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……
所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。
例:2AF5换算成10进制:
用竖式计算:
第0位:5 * 16^0 = 5
第1位:F * 16^1 = 240
第2位:A * 16^2= 2560
第3位:2 * 16^3 = 8192
-------------------------------------
10997
直接计算就是:
5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997

热心网友 时间:2022-04-22 18:01

16进制是逢16进1,用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。字母不区分大小写。
在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。

热心网友 时间:2022-04-22 20:43

现在有在线转换,所以没有必要自己去算了,我现在都是直接输入就得结果!

热心网友 时间:2022-04-22 23:41

十进制会算吧 比如111 就是1*10^2+1*10^1+1*10^0 十六进制只不过就是把其中的10换成16罢了

热心网友 时间:2022-04-23 02:55

十六进制是逢十六进一,转换成十进制要逢十进一的

热心网友 时间:2022-04-23 06:27

十六进制转换成十进制方法:“按权展开求和”,例十六进数:(2AF5)H=2*16^3+10*16^2+15*16^1+5*16^0=8192+2560+240+5=10997。

十六进制(英文名称:Hexadecimal),是计算机中数据的一种表示方法。同我们日常生活中的表示法不一样。它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9;A-F对应10-15;N进制的数可以用0~(N-1)的数表示,超过9的用字母A-F。

十进制,即①满十进一,满二十进二,以此类推……②按权展开,第一位权为10^0,第二位10^1……以此类推,第N位10^(N-1),该数的数值等于每位位的数值*该位对应的权值之和。

进制也就是进位计数制,是人为定义的带进位的计数方法(有不带进位的计数方法,比如原始的结绳计数法,唱票时常用的“正”字计数法,以及类似的tally mark计数)。 对于任何一种进制---X进制,就表示每一位置上的数运算时都是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。

热心网友 时间:2022-04-23 10:15

十六进制化为十进制:方法很简单,就是用个位数+十位数*16+百位数*256+千位数*4096+...相乘的时候,前面的一位数乘以的数是十后面一位数乘以数的16倍。
例:将十六进制数AB转换成十进制数: (AB)16=A×16+B=(171)10(ABC)16=A×256+B×16+C=(2748)10

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com