如何把256进制的数组转化成10进制的

chimenghuanzhe 2016-09-04 05:19:39
我在unsigned char a[20]中存的是256进制的数据,即每个元素的范围是0——255,前10位是整数部分,后10位是小数部分,我在打印输出时,输出完前10位,然后输出一个小数点,再接着输出后十位。现在要转化成10进制的数据存放在b[N]中。
请问这个算法(最好是代码),怎么算。

如果仅仅是一个数,我知道,可以先取余,再相除,这样就能得到相应的结果。可是我这个是把一个大数存在了数组中。很麻烦。理不清了。如果是手算,我可以把每一位乘以相应的进制最后求和。但是计算机明显不能这样算,因为最后这个数据太大了。存不开。
急求。
...全文
1511 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
chimenghuanzhe 2016-10-09
  • 打赏
  • 举报
回复
这个问题,我参考了把10进制转换成2进制的方法。把每个数字都除以10,余数乘以256加上下一位,一直到最终的余数出现,则是结果的一位,这样不断的下去可以得到任意位数的。这是对于整数,如果对于小数部分,则是每一位乘以10,然后把进位到小数点之前的数字取出来就可以了。
lm_whales 2016-09-05
  • 打赏
  • 举报
回复
可以除以100 或者1000,10000 得到百千万进制数。 直接输出,不足补零,就是10进制数了。
paschen 2016-09-04
  • 打赏
  • 举报
回复
小数点左边每一位: 256^0 * 第一位 + 256 ^ 1 * 第二位 ................ 小数点右边每一位:256^-1 * 右第一位 ............. 然后加起来就是最终结果
wang0635 2016-09-04
  • 打赏
  • 举报
回复
20个字节(160位)的大数,小数点右移10个字节(80位),就变成160位的大整数了。 搜大整数

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧