一、十六进制数如何转换成十进制
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
扩展资料:
十六转十的乘法口诀:
一峘一拾六
二峘三拾二
三峘四拾八
四峘六拾四
五峘八拾
六峘九拾六
七峘一百一拾二
八峘一百二拾八
九峘一百四十四
十峘一百六
屲峘一百七拾六
亗峘一百九拾二
岌峘二百零八
岄峘二百二拾四
岪峘二百四
参考资料: 百度百科—十六进制转换
二、十六进制和十进制之间怎么转换
10进制,用十个阿拉伯数字:0到9;
16进制,用十六个阿拉伯数字……等等,阿拉伯人或说是印度人,只发明了10个数字啊?
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次方……
所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。
假设有一个十六进数 2AF5, 那么如何换算成10进制呢?
用竖式计算:
2AF5换算成10进制:
第0位: 5 * 160= 5
第1位: F * 161= 240
第2位: A * 162= 2560
第3位: 2 * 163= 8192 +
-------------------------------------
10997
直接计算就是:
5 * 160+ F * 161+ A * 162 +2 * 163= 10997
(别忘了,在上面的计算中,A表示10,而F表示15)
三、【十进制转化为十六进制数输入一个十进制正整数,并把它转化为十六
首先 你的变量定义有问题:1:StackType 被你定义为函数的函数,那么由此所生成的对象的生命周期是临时变量,要定义为全局变量2:top也是如此3:while(x/16!=0){Push(S,x%16);x=x/16;}这个函数有问题.假设我输入44,那么应该输出2C,但是当你执行完第一个while后,就不再进入第二次,因为44%16=12,而12/16==0,那么就不能储存到你所定义的数组了4:还有你的switch函数不对,当输入44后,12->C,而2-->却不能输出.////////////////////////////////////////////////////////#include #include #define Maxsize 100struct StackType{int elements[Maxsize];//数组储存数据};int top=-1;int temp=0;struct StackType S;int Push(int x){top++;S.elements[top]=x;return(0);}int Pop(){top--;temp=S.elements[top+1];return 0;}void change(int num){switch(num){case 1:printf("%d",num);break;case 2:printf("%d",num);break;case 3:printf("%d",num);break;case 4:printf("%d",num);break;case 5:printf("%d",num);break;case 6:printf("%d",num);break;case 7:printf("%d",num);break;case 8:printf("%d",num);break;case 9:printf("%d",num);break;case 10:printf("%c",'A');break;case 11:printf("%c",'B');break;case 12:printf("%c",'C');break;case 13:printf("%c",'D');break;case 14:printf("%c",'E');break;case 15:printf("%c",'F');break;}}int main(){int x;scanf("%d",&x);if(x。
四、十进制数转换成十六进制、八进制和二进制,虽然现在可以用计算器
设当前10进制数为X.16进制数表示为:an-1..a1a0(n位) = an-1*16^n-1+。
+a1*16^0 = X 则十进制转换为16进制即要求出an-1..a1a0.则用X / 16 = X'.a0; X'/16 = X'.a1.最后求出an-1因此十进制数X转换为A进制数an-1an-2。a2a0,就用X整除A求得商得到余数a0,商再整除A得到余数a1.如此反复n次.求得的余数a0~an-1倒叙排列就是转换为A进制的结果.。