进制转换问题
关于进制转换原理有点不明白之处,求指教
十进制转二进制过程:一直除2,余数顺序倒过来就是二进制数.思考了原理,每次除法留下的余数所表数值是小于本位对应二进制"权值"的,余数本身也是小于二进制"基"的,所以余数应该留在本位,而能进入下一次除的数值都是大于"基"所能表数范围的.
最后,按照从左到右的数值顺序,应该把历次余数倒过来.
由此推广,高进制转低进制时,一直除以低进制的“基”,最后颠倒余数顺序就可以得到。低进制数转高进制数时,应该依次乘以本位权值,加和即可得到。
但是有一个问题不懂,小数部分遇到这样的情况是怎么处理的:3进制数的0.1和10进制数的0.33333.........是等同的,进制转换时如何全等,保证不失真?
[解决办法]
所以说内部用分数表示啊,例如0.3333333……,在10进制时并不是用一个浮点数表示,而是用两个整数(1,3)表示,前面表示分子,后面表示分母。转换成3进制时,分子分母分别转换成3进制,就变成了(1,10),这样不会损失精度。而只有在需要小数表达法时,才用不精确的表达方式表达,即存储和所见到的并不是完全一致的。