请教一个很简单的问题……如何将有小数的10进制数转化为2进制、16进制、8进制……(主要是小数部分)(不要程序代码,只要基础的方法即可

zeax 2003-09-12 08:01:02
如题,不要程序代码,只要基础的方法即可
...全文
304 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxwstar 2003-11-04
  • 打赏
  • 举报
回复
mark
qqchen79 2003-09-12
  • 打赏
  • 举报
回复
小数在计算机里有定点和浮点两种表达方式,定点和浮点的具体存储形式对数值表示也有影响。saucer(思归) 给出的是定点小数换算方法。

现在的CPU一般使用的是浮点表示,例如x86 CPU的80位浮点是64位尾数16位阶码。
没有这些信息,是没法确定小数的二进制表示的。
saucer 2003-09-12
  • 打赏
  • 举报
回复
if you mean binary as:

n = ...2^m + ... + 2^1 + 2^0 + 2^(-1) + 2^(-2) + ...

then try this, say we have a number 0.125
0.===>0
0.125*2==>0.25 < 1 ==>0
0.25*2 ==>0.5 < 1 ==> 0
0.5 * 2==>1 ==1 ==> 1
1-1=0 ==>done

so 0.125 ==>0.001 ==> 2^(-3) in binary format

similar for 0.875
0. ==> 0
0.875*2 => 1.750 > 1 ==>1
(1.750-1=0.75)*2==>1.5 > 1 ==>1
(1.5-1=0.5)*2==> 1==1 ==>1
(1-1)=0==>done

so 0.875 = 0.111 ==> 2^(-1) + 2^(-2) + 2^(-3)

shengxiaokai 2003-09-12
  • 打赏
  • 举报
回复
10---->2是:
一直除2到结果是0
把余数倒过来
比如:123就是
123-------1
61--------1
30--------0
15--------1
7---------1
3---------1
1---------1
0
结果:1111011

厦门大学软件学院主页ASP原代码(完全开放)
http://218.193.48.48/explorer/soft/UMU/software.rar
你好好研究!!
看看效果:
http://218.193.48.48/software/
http://218.193.48.48/explorer/
zeax 2003-09-12
  • 打赏
  • 举报
回复
不是啊,我只是要方法(如 1*2^2+0*2^1+1*2^0 等),我是学生,要交差……谢谢了
saucer 2003-09-12
  • 打赏
  • 举报
回复
you probably mean to get bit patterns, try

byte[] b = System.BitConverter.GetBytes(YourFloatNumber);
jjcccc 2003-09-12
  • 打赏
  • 举报
回复
在计算机中不管什么进制都用二进制来表示,所以如果拿来运算,就无所谓转换不转换。转换只是转换不同的输出格式而已。看看格式化输出的方法吧,没那么复杂。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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