C语言10进制转2进制代码
时间: 2023-09-13 22:13:44 浏览: 53
以下是一个将十进制数转换为二进制数的C语言代码:
```
#include <stdio.h>
void decimalToBinary(int decimalNumber) {
int binaryNumber[32];
int i = 0;
while (decimalNumber > 0) {
binaryNumber[i] = decimalNumber % 2;
decimalNumber = decimalNumber / 2;
i++;
}
for (int j = i - 1; j >= 0; j--) {
printf("%d", binaryNumber[j]);
}
}
int main() {
int decimalNumber;
printf("Enter a decimal number: ");
scanf("%d", &decimalNumber);
printf("Binary number is: ");
decimalToBinary(decimalNumber);
return 0;
}
```
该代码使用除2取余法将十进制数转换为二进制数。将十进制数除以2,将余数存储在数组中,然后将商用作下一次迭代的除数。最后,从数组中的最后一个元素开始,以相反的顺序打印二进制数字。
相关问题
C语言10进制转换2进制
在C语言中,将10进制整数转换为2进制通常使用取模和除法(也称为“除2取余”)的方法,这是一个基础的位操作过程。以下是一个简单的步骤:
1. 初始化一个空字符串用于存储二进制结果。
2. 取10进制数的除以2的余数,余数就是二进制的最低位(0或1)。
3. 将余数添加到结果字符串的开始。
4. 对10进制数除以2并向下取整,直到商为0。
5. 重复步骤2-4。
下面是一个简单的示例代码片段:
```c
#include <stdio.h>
#include <string.h>
void decToBinary(int num) {
if (num == 0) {
printf("0");
} else {
char binary[32]; // 用于存放二进制结果,假设最大32位
int i = 0;
while (num > 0) {
binary[i++] = num % 2 + '0'; // 0或1转换为字符并添加到字符串
num /= 2;
}
binary[i] = '\0'; // 添加字符串结束符
// 输出反转的结果,因为最初从最低位开始取余,实际结果应该是从最高位到最低位
printf("%s", binary + i - 1);
}
}
int main() {
int decimal = 42;
decToBinary(decimal);
return 0;
}
```
当你运行这段代码,会得到输出 `101010`,这是10进制的42对应的二进制表示。
c语言10进制转16进制代码
以下是一个C语言的代码示例,用于将一个十进制数转换为十六进制数:
```c
#include <stdio.h>
void decimalToHexadecimal(int decimal) {
int remainder;
char hexadecimal[100];
int i = 0;
while (decimal != 0) {
remainder = decimal % 16;
if (remainder < 10) {
hexadecimal[i] = remainder + 48;
} else {
hexadecimal[i] = remainder + 55;
}
decimal = decimal / 16; i++;
}
printf("Hexadecimal: ");
for (int j = i - 1; j >= 0; j--) {
printf("%c", hexadecimal[j]);
}
}
int main() {
int decimal;
printf("Enter a decimal number: ");
scanf("%d", &decimal);
decimalToHexadecimal(decimal);
return 0;
}
```
这段代码首先定义了一个函数`decimalToHexadecimal`,该函数接受一个十进制数作为参数,并将其转换为十六进制数。然后,在`main`函数中,用户被要求输入一个十进制数,然后调用`decimalToHexadecimal`函数进行转换并打印结果。