十进制转换成二进制

辗转相除法:本质上是一个连续除以2的过程。结束的标志就是商为0。
在然后将所有的余数倒序排列,得到的就是十进制相应的二进制结果。

  1. # 通过函数bin(x), 返回一个整型或长整型x的二进制表示
  2. bin(5) # output: '0b101'
  3. bin(5)[2:] # output: '101'

C++版本的辗转相除法

  1. // 十进制转二进制
  2. #include <iostream>
  3. using namespace std;
  4. int main()
  5. {
  6. int a[20], n, i;
  7. cout << "Enter the number to convert: ";
  8. cin >> n;
  9. for(i=0; n>0; i++)
  10. {
  11. a[i] = n % 2;
  12. n /= 2;
  13. }
  14. cout << "Binary of the given number= ";
  15. for(i=i-1; i >= 0; i--)
  16. {
  17. cout << a[i];
  18. }
  19. return 0;
  20. }

N进制数转八进制数

  1. # oct()函数
  2. oct(0b1010) # ‘0o012’
  3. oct(11) # '0o013'
  4. oct(0xf) # '0o017'

十进制数转十六进制

  1. # hex()函数
  2. hex(17) # '0x11'

N进制转换成十进制

image.png

规律

N进制数转M进制,都可以先转换成十进制,再转换成M进制。