欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C/C++ 十进制数转化为二进制并输出

程序员文章站 2022-03-01 13:33:26
...

十进制转化为二进制并输出(以整型为例)

首先需要明确十进制转为二进制的算法:将所需转化的数除以2,所得余数为k1,将所得商再除以2,所得余数为k2…...重复步骤直到商为0;读数时从最后一个余数读起,即kn,k(n-1)…k2,k1;所得数便是转化成的二进制数(除二取余法)
例如:将40转化为二进制数
40/2   商为20   余数为0   k1

 20/2   商为10   余数为0   k2


10/2   商为5     余数为0   k3


5/2     商为2     余数为1   k4


2/2     商为1     余数为0   k5


1/2     商为0     余数为1   k6


故二进制数为:101000

编程思路:定义输入的函数为input,商为quotient,余数为remainder;则可以用一个数组result来存放每次计算后所得的余数,然后倒序输出

代码如下:

#include <stdio.h>
int main(void) {
    
    //提示用户输入数据
    int input;
    
    printf("请输入一个数据:");
    scanf("%d", &input);
    
    //将数字转成二进制
    int quotient = input;
    int remainder = 0;
    int result = 0;
    int time = 1;
    
    while (quotient != 0 ) {
        remainder = quotient % 2;       //求余数
        result += remainder * time;    //将余数化为一个具体的值
        quotient = quotient / 2;      //求商
        time *= 10;
    }
 
  //输出二进制数据
    printf("转化成二进制为:%d\n",result);
  
    return 0;
}

相关标签: c/c++ c++ 算法