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;
}