突然意识到一个问题,小数也可以用8进制,16进制表示吧,为什么没人用呢?

看了很多语言的教程,在讲8进制、16进制的时候,从来都是用整数来表示。
今天突然想到,其实小数也可以用8进制、16进制表示呢,但从来没有一本教程讲过这个问题。
我知道浮点数的表示格式有很多种,在计算机内部,不管什么进制,都是用2进制存储的。
所谓的10进制、8进制、16进制只是为了方便人类读写,转换出来的。

小数怎么用8进制、16进制转换,这个还真不会呢,哈哈。

阅读 3.5k
4 个回答

我觉得一个道理吧。。。只不过整数部分,小数部分分别转换
比如十进制的 12,转成八进制就是 14
那么十进制的 12.12,转成八进制就是 14.14
2333333333333

方法倒是很简单,但为何不用,我觉得原因是:

2进制和8进制和16进制,都有自己适合使用的地方,恰恰这些领域用不到小数

比如编码,硬件存储,网络等

小数对应到其他进制进行存储和表示时,需规定好指数位和位数位等信息,如IEEE R32.24规定或者R64.53规定,不做规定的表示是没有意义的,同样一个16或者8进制的数据在不同的规定下实际的数值是不一样,这样就带来交流的不方便,那不如直接写人类能直接看懂数值。

因为没什么意义啊,有意义的东西才能被流传。

之所以用2/8/16进制,都是因为这些进制能刚好和bit直接对应上。而小数没有这个,其他进制写出来的小数和内存里的小数还是不能按bit对应上,既然对不上,那要你何用。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题