十进制转换成二进制
辗转相除法:本质上是一个连续除以2的过程。结束的标志就是商为0。
在然后将所有的余数倒序排列,得到的就是十进制相应的二进制结果。
# 通过函数bin(x), 返回一个整型或长整型x的二进制表示
bin(5) # output: '0b101'
bin(5)[2:] # output: '101'
C++版本的辗转相除法
// 十进制转二进制
#include <iostream>
using namespace std;
int main()
{
int a[20], n, i;
cout << "Enter the number to convert: ";
cin >> n;
for(i=0; n>0; i++)
{
a[i] = n % 2;
n /= 2;
}
cout << "Binary of the given number= ";
for(i=i-1; i >= 0; i--)
{
cout << a[i];
}
return 0;
}
N进制数转八进制数
# oct()函数
oct(0b1010) # ‘0o012’
oct(11) # '0o013'
oct(0xf) # '0o017'
十进制数转十六进制
# hex()函数
hex(17) # '0x11'
N进制转换成十进制
规律
N进制数转M进制,都可以先转换成十进制,再转换成M进制。