进制转换(以二进制为例)

十进制整数转换为二进制整数采用"除2取余,逆序排列"法。

具体做法是:
用2整除十进制整数,可以得到一个商和余数;
再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,
然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

代码如下

#include <stdio.h>
int main(){
    int num;
    int wei = 1; //位数
    long long sum =0;
    printf("请输入数字:");
    scanf("%d",&num) ;
    while(1){
        int yushu = num % 2;
        sum = sum + yushu*wei;
        wei = wei*10;
            if(num < 2){
            sum = sum + num*wei;
            break;
        }
    }
    printf("%d",sum);
 return 0;
 }
注意
  • int yushu = num % 2;//求出余数

  • num = num / 2;
    /求出除以二之后的数值作为下一次取余的基数

  • sum = sum + yushu*wei;
    //利用这个式子可以把求出来的余数倒序表示出来,即二进制数

  • wei = wei*10;
    使位数往前一位

  • if(num < 2)
    sum = sum + num*wei;
    即把最后无法再除2的数放到首位,就把十进制数转换为二进制数

总结:

(1)这个demo的重点在于将一串数字倒序表示出来
(2)倒叙表达还可以用数组来实现。
(3)十进制转为其他进制的方法与二进制的相似。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容