用C语言实现函数,将非负整数n转化为二进制输出
时间: 2024-02-01 22:03:09 浏览: 30
可以使用以下代码实现:
```c
void decToBinary(unsigned int n) {
int binaryNum[32];
int i = 0;
while (n > 0) {
binaryNum[i] = n % 2;
n = n / 2;
i++;
}
for (int j = i - 1; j >= 0; j--)
printf("%d", binaryNum[j]);
}
```
这个函数接收一个非负整数 n,然后将其转换为二进制并输出。
相关问题
C语言实现一个函数,将非负整数n转换为二进制后输出
```c
#include <stdio.h>
void dec2bin(int n) {
int binary[32], i = 0;
while (n > 0) {
binary[i] = n % 2;
n /= 2;
i++;
}
for (int j = i - 1; j >= 0; j--) {
printf("%d", binary[j]);
}
}
int main() {
int n;
printf("请输入一个非负整数:");
scanf("%d", &n);
printf("二进制表示为:");
dec2bin(n);
printf("\n");
return 0;
}
```
c语言将非负整数n转换为二进制后输出
以下是将非负整数n转换为二进制后输出的C语言代码:
```c
#include <stdio.h>
int main() {
unsigned int n; // 声明一个无符号整数n
printf("请输入一个非负整数:");
scanf("%u", &n); // 输入n的值
// 将n转换为二进制并输出
printf("%u的二进制表示为:", n);
for (int i = 31; i >= 0; i--) {
if ((n >> i) & 1) {
printf("1");
} else {
printf("0");
}
}
printf("\n");
return 0;
}
```
解释:
1. 首先定义了一个无符号整数n,用于存储待转换的非负整数。
2. 通过printf和scanf函数分别输出提示信息和获取用户输入的n的值。
3. 通过for循环,从高位到低位依次判断n的二进制位是否为1,如果是则输出1,否则输出0。
4. 最后输出一个换行符,以便下一行输出。
注意事项:
1. 本代码中使用了无符号整数类型unsigned int,因为在C语言中,使用有符号整数类型int时,当n取到最大值时(即2的31次方-1),会出现符号位溢出的现象,导致输出的二进制表示不正确。
2. 在循环中,需要使用位运算符>>和&来判断n的二进制位是否为1。其中,>>表示右移操作,将n的二进制位向右移动i位,&表示按位与操作,将结果与1进行比较。