十进制数N和其他d进制数的转换是计算机实现计算的基本问题,解决方案有很多,其中一个简单算法是基于下列原理:
N = (N div d) *d + N mod d
案例:十进制的1348转8进制的2504
N | N div 8 | N mod 8 |
1348 | 168 | 4 |
168 | 21 | 0 |
21 | 2 | 5 |
2 | 0 | 2 |
代码实现:
"""
/*
* @Author: zuofanxiu
* @Date: 2018-08-14 23:29:34
* @Last Modified by: zuofanxiu
* @Last Modified time: 2018-08-14 23:59:27
*/
"""
#10进制转其他进制,从地位到高位输出结果
def conversion(n, d):
while(n//d >= 1):
print(n%d)
n = n//d
if(n%d !=0):
print(n%d)
if __name__ == "__main__":
conversion(16, 8)