十六十进制转换十六进制为十进制

共有 7216 人关注过本帖
标题:请教:如何请一个四字节的16进制数转换为十位十进制数?
等 级:新手上路
&&已结贴√
&&问题点数:20&&回复次数:9&&&
请教:如何请一个四字节的16进制数转换为十位十进制数?
得到四个十六进制的数,比如a[1],a[2],a[3],a[4]分别代表四个字节;那现在要如何把这四个字节组合在一起转换为十位十进制输出呢?比如4A2B3C4D这四个字节组合在一起,要输出:。应该如何写代码,请赐教,不胜感激!我的QQ:,请联系我,交个朋友。
搜索更多相关主题的帖子:
等 级:蜘蛛侠
帖 子:258
专家分:1138
看不出来你哪儿不懂?想给你建议也无从下手啊
等 级:黑侠
帖 子:226
专家分:618
用一个char数组来存储,但用整数来赋值
char a[4]={90,43,60,77};
首先分别将a[i](0&=i&4)转化为十六进制
high=(int)a[i]/16;
low=(int)a[i]%
如90,high=5,low=10;43,high=2,low=11;60,high=3,low=12;77,high=4,low=13;
然后给每个不同的i分配权值
int power=2*(MAX-1-i)+1;
对MAX=4的数组,i=0,1,2,3其权值分别为7,5,3,1,
代表第一个high,low对的权值为7,6;第二对为5,4;3,2;1,0;
那么结果为
int res=0;
res+=(high*16^power+low*16^(power-1));
这样对所有i循环完成后,上例为:
res=0+(5*16^7+10*16^6)+(2*16^5+11*16^4)+(3*16^3+12*16^2)+(4*16^1+13*16^0)
等 级:业余侠客
帖 子:95
专家分:260
#include&stdio.h&
void main()
char a[4];
int o=0; //存放最终结果
for(int i=0;i&4;i++)
&&& scanf(& %x&,&a[i]);//输入数据
for(int j=0;j&4;j++)
&&& o*=16;o+=a[j];合成数据
printf(&%d&,o);输出数据
等 级:新手上路
以下公式就能实现
a[1] * 16^3 + a[2] * 16^2+ a[3] * 16^1 + a[4] * 16^0
等 级:版主
威 望:58
帖 子:3837
专家分:11358
用位运算啊
总有那身价贱的人给作业贴回复完整的代码
来 自:China
等 级:业余侠客
帖 子:183
专家分:258
那么着急求代码干啥?
Google一下进制转换,看一下16进制如何转换成10进制不就OK了
学如逆水行舟,不进则退
士不可以不弘毅,任重而道远
等 级:黑侠
帖 子:226
专家分:618
回4、5楼:
你们没理解楼主的意思,楼主说的是一个[4]数组(类型暂定),但表示的是5A2B3C4D共8位的16进制数,也就是说5A(十进制的90)存数组[0],2B存数组[1]以此类推。由于最大的是FF,也就是十进制的256,因此可以用一个char类型来存储,但少一个256,也可以用int型来存储,但不管怎么存储,结果都是5*16^7+10*16^6+......,而不是90*16^3......,其中5就是数组[0]存储的数字90,除以16的商,而10是90除以16的余数。
等 级:业余侠客
帖 子:95
专家分:260
回复 8楼 stophin
谢谢提醒,原来却是我错了。
等 级:论坛游民
帖 子:52
专家分:73
版权所有,并保留所有权利。
Powered by , Processed in 0.028037 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved各进制之间的相互转换_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
各进制之间的相互转换
上传于||文档简介
&&上​海​实​验​性​示​范​性​高​中​信​息​会​考​教​案
大小:544.50KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢常用教程:
您现在的位置: > 教程 >
理论算法:十六进制与十进制包含小数的相互转换
10:51:02 | 浏览次数 | 7659 | 标签
  下面本文给你介绍的是,十进制数与十六进制数,包括小数在内的相互转换的理论算法,让你掌握计算的过程。
  一、十进制整数转换十六进制
  理论守法:用十进制数除以16取余数再用商除以16直到商比16小,最后依次从后取余数,余数所对应的十六进制位数即为十六进制数;如:
  将十进制数13566转换成十六进制数;
  1.1=847……14;E   2.847÷16=52……15;F   3.&52÷16=3…&#   4.3比16小就不用除下去了,直接写3
  所以13566的十六进制数为;34F(15)E(14),注意,结果是34FE。
  二、十六进制整数转成十进制
  从低位到高位(0到n位)分别用十六进制的数位乘以16的n次方然后再依次相加;有小数时(从左到右依次为1到m位)从小数点往右依次乘以-1到-m次方;
  例如:将十六进制数5ACD3E转成十进制数;
  5在第5位;A在第10位;C在第12位;D在第13位;3在第3位;E在第14位;
  5*16^5+10*16^4+12*16^3+13*16^2+3*16^1+14*16^0=5950782
  所以:十六进制数5ACD3E的十进制数是:5950782
  三、十进制小数转十六进制
  理论依据:第一次将小数乘以十六,得到的数的整数部分就是小数的第一位,然后,去掉整数后的小数又乘以十六,又将得到的数的整数作为小数点后的第二位。依次乘下去。知道都乘为整数,到最后一位。
  比如十进制的0.5,将其乘以十六得到八,则换算救结果就是0.8
  四、十六进制小数转十进制
  十六进制小数(从左到右依次为1到m位),从小数点往右依次乘以-1到-m次方;
  例如:126.398的十六进制数
  整数部分126&&
  百位: 1×16×16&&&&&& (16的平方)
  十位: 2×16&&&&&&&&&&  (16的一次方)&
  个位: 6&&&&&&&&&&&&&&   (16的零次方)
  小数部分398&&&&&&&&&
  3×(16×-1)这里是16的负1次方
  9×(16×-2)这里是16的负2次方
  8×(16×-3)这里是16的负3次方
Search Word联系QQ:
写得非常好,赞一个。
总结得相当精辟,不愧是青山写的。其他回答(2)
Convert.ToInt64("E0F", 16).ToString()
long.Parse("E0F", NumberStyles.AllowHexSpecifier).ToString()
收获园豆:10
Convert.ToString(number, 2);
Convert.ToString(number, 8);
Convert.ToString(number, 10);
Convert.ToString(number, 16);
把你输入的文本转成number对象,然后你想怎么转就怎么转。
&&&您需要以后才能回答,未注册用户请先。使用EXCEL 进行16进制转换为十进制_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
使用EXCEL 进行16进制转换为十进制
上传于||文档简介
&&十​六​进​制​数​转​换​为​十​进​制​数​的​方​法​。​
​
​H​E​XD​E​C​
​
​将​十​六​进​制​数​转​换​为​十​进​制​数​。​
​
​如​果​该​函​数​不​可​用​,​并​返​回​错​误​值​ ​#​N​A​M​E​?​,​请​安​装​并​加​载​“​分​析​工​具​库​”​加​载​宏​。
大小:1.91KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢}

我要回帖

更多关于 十进制转换十六进制 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信