十进制转化成二进制c语言代码
时间: 2023-05-31 15:02:28 浏览: 120
以下是将十进制数转换为二进制数的C语言代码:
```c
#include <stdio.h>
int main() {
int decimal, binary[20], i = 0, j;
printf("请输入一个十进制数:");
scanf("%d", &decimal);
while(decimal > 0) {
binary[i] = decimal % 2;
decimal /= 2;
i++;
}
printf("二进制数为:");
for(j = i - 1; j >= 0; j--) {
printf("%d", binary[j]);
}
printf("\n");
return 0;
}
```
该程序将用户输入的十进制数转换为二进制数并输出。首先,程序要求用户输入一个十进制数,然后使用while循环将十进制数转换为二进制数,将每一位的余数存储在数组binary中。最后,使用for循环反向输出二进制数。
相关问题
二进制转化为十进制的C语言代码
以下是利用栈将十进制整数转化为二进制数的C语言代码:
```
#include <stdio.h>
#include <stdlib.h>
#define STACK_SIZE 100
typedef struct {
int top;
int data[STACK_SIZE];
} Stack;
void initStack(Stack *s) {
s->top = -1;
}
int isEmpty(Stack *s) {
return s->top == -1;
}
int isFull(Stack *s) {
return s->top == STACK_SIZE - 1;
}
void push(Stack *s, int x) {
if (isFull(s)) {
printf("Stack overflow\n");
exit(1);
}
s->data[++s->top] = x;
}
int pop(Stack *s) {
if (isEmpty(s)) {
printf("Stack underflow\n");
exit(1);
}
return s->data[s->top--];
}
void decimalToBinary(int n) {
Stack s;
initStack(&s);
while (n > ) {
push(&s, n % 2);
n /= 2;
}
while (!isEmpty(&s)) {
printf("%d", pop(&s));
}
}
int main() {
int n;
printf("Enter a decimal number: ");
scanf("%d", &n);
printf("Binary equivalent: ");
decimalToBinary(n);
printf("\n");
return ;
}
```
十进制转化为二进制c语言代码
十进制转化为二进制可以通过连续做除2和取余数的方式实现。具体操作如下:
1.定义一个变量result存储二进制结果,初始值为0;
2.定义一个变量base存储当前位权值,初始值为1;
3.循环进行十进制转二进制的操作,直到所需位数全部转化完成:
(1)每次将十进制数除以2,得到商和余数;
(2)将余数乘以当前位权值,得到此位的二进制值;
(3)将二进制值加到result中;
(4)将位权值乘以2,即向左移位一位,进入下一位的转化。
最终,result中存储的就是十进制数的二进制表示。下面是具体实现的C语言代码:
```
#include <stdio.h>
int main(){
int decimalNum, binaryNum=0, base=1, remainder;
printf("Please enter a decimal number:");
scanf("%d", &decimalNum);
while(decimalNum!=0){
remainder = decimalNum%2;
binaryNum += remainder*base;
base *= 10;
decimalNum /= 2;
}
printf("The binary number is: %d\n", binaryNum);
return 0;
}
```
在该代码中,变量decimalNum存储输入的十进制数,变量binaryNum存储转换后的二进制数,变量base是当前位的位权,变量remainder是每次除以2所得到的余数。循环中,每次将decimalNum除以2得到商和余数,将余数乘以base得到此位的二进制值,然后加到binaryNum中,并将base左移一位。当decimalNum变为0时,转换完成,输出二进制结果。