请问10进制小数部分如何转化成16进制

比如 2811.151 整数部分我没问题 2811/16 =整数接着除 小数X16 记录下来
可是小数部分 我纳闷了 0.151X16 取整数 接下去的小数再X16 我发现是无穷循环啊

1、首先设置MFC界面如图。

2、然后为【编辑框】控件设置变量。

3、为【转换】按钮设置ID。

4、双击【转换】按钮,添加按钮【被单击】事件代码。

5、按钮【被单击】代码中调用的自定义函数HexToDem()代码如下。

6、由于HexToDem()为自定义函数,所以需要在对应头文件XXXDlg.h中声明void HexToDem()。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-25
小数部分是乘以16 ,将得数的整数部分取出,然后就变成了0.多少乘以16,继续下去直到乘得到的小数部分为0,然后把取出的数正取(就是先写最先取出的数)就可以了
当然有的不能精确转换,可以看原来有几位就写几位,四舍五入
希望能帮到你 望采纳!!!本回答被网友采纳
第2个回答  2019-11-13
你好!举个例子:
1c2d.9=1*16'3+c*16'2+d*16'0+9*16'-1(注意这是16的负1次方)=7213.5625
其实都一样只是加个负号.16进制abcdef对应十进制为10
11
12
13
14
15
第3个回答  2015-07-25
十进制数小数点后面第一位是X0.1(十分之一),后面第二位是X0.01(百分之一),对十六进制,就是X(十六分之一)和X(十六的平方分之一),这样类推去转化。本回答被网友采纳
相似回答