找回密码
 点一下
查看: 1051|回复: 9

求 16-10 进制 互转 算法

[复制链接]
发表于 2013-2-18 15:24:48 | 显示全部楼层 |阅读模式
求 16-10 进制 互转 算法
哪位达人 受累 能否写一个

如果有 32进制 的就更好了。

多谢多谢 膜拜膜拜
发表于 2013-2-18 22:59:06 | 显示全部楼层
本帖最后由 yxxiaobin 于 2013-2-19 17:57 编辑

对于支持16进制的编程环境来说(比如C、VB等编程语言),可以直接将他们进行相互转换。
如果你需要在不直接支持16进制的环境中,需要将格式化字符串转换成数值,比如将"FA2C5"转换成十进制数值,只要每位数字分别乘以他们的权值然后相加即可。
从右向左看,每位的权值分别是 16^0,16^1,16^2....16^n。所以"FA2C5"转换公式就是:5*16^0+C*16^1+2*16^2+A*16^3+F*16^4。
如果你在星际编辑器中使用,最好的方法是先定义变量,比如定义A=10,B=11 .... F=15,这样直接代入公式比较方便。
10禁止格式化成16进制的数字字符串就是逆向运算了。比较经典的算法是除16求余法,比如3257转换成16进制,首先计算3257/16,求整数商和余数,第一个余数就是十六进制数的左数第一位(注意:超过9的数需要转变成A-F的表示方法)。然后用整数商再除以16,求得的余数就是十六进制数的左数第二位,以此类推,直到整数商小于或等于15为止,然后串联起各个余数就是需要的结果了。
回复

使用道具 举报

发表于 2013-2-18 22:59:29 | 显示全部楼层
32进制算法同理,就不多数了。
回复

使用道具 举报

 楼主| 发表于 2013-2-19 08:54:50 | 显示全部楼层
好乱。。。
回复

使用道具 举报

发表于 2013-2-19 17:55:27 | 显示全部楼层
没有习得“换行”技能了呀~

点评

小彬的排版确实糟糕的很,主要是没这好习惯,看来得改一改了。 顺手编辑一下。  详情 回复 发表于 2013-2-19 17:56
回复

使用道具 举报

发表于 2013-2-19 17:56:47 | 显示全部楼层
四夕水草肃 发表于 2013-2-19 17:55
没有习得“换行”技能了呀~

小彬的排版确实糟糕的很,主要是没这好习惯,看来得改一改了。
顺手编辑一下。
回复

使用道具 举报

发表于 2013-2-19 17:58:08 | 显示全部楼层
编辑一下,还是觉得很乱.....无语了。
回复

使用道具 举报

发表于 2013-2-20 09:05:54 | 显示全部楼层
循环,字符串长度,位数,计算,,,,很少的代码
我说的是用j,c应该也差不多
回复

使用道具 举报

发表于 2013-2-20 23:29:39 | 显示全部楼层

点评

已看到!  详情 回复 发表于 2013-2-22 08:47
回复

使用道具 举报

 楼主| 发表于 2013-2-22 08:47:27 | 显示全部楼层
疯人¢衰人 发表于 2013-2-20 23:29
http://bbs.islga.org/forum.php?mod=viewthread&tid=1782583&page=1&extra=#pid1540426
演示

已看到!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-6-29 09:11 , Processed in 0.096394 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表