把任意十进制正整数转换成二进制数(指针实现)。
时间: 2023-04-21 17:01:15 浏览: 99
可以使用指针实现将任意十进制正整数转换成二进制数的操作。具体步骤如下:
1. 定义一个指向整型数组的指针,用于存储二进制数的每一位。
2. 通过循环,将十进制数不断除以2,得到商和余数。将余数存储到数组中,直到商为0为止。
3. 反转数组中的元素,得到正确的二进制数。
例如,将十进制数23转换成二进制数的过程如下:
1. 定义一个长度为8的整型数组,用于存储二进制数的每一位。
2. 23除以2得到商11余1,将余数1存储到数组中。11除以2得到商5余1,将余数1存储到数组中。5除以2得到商2余1,将余数1存储到数组中。2除以2得到商1余0,将余数0存储到数组中。1除以2得到商0余1,将余数1存储到数组中。
3. 反转数组中的元素,得到二进制数10111。
代码实现如下:
```c
#include <stdio.h>
void decimalToBinary(int decimal, int *binary) {
int i = 0;
while (decimal > 0) {
binary[i] = decimal % 2;
decimal /= 2;
i++;
}
for (int j = 0; j < i / 2; j++) {
int temp = binary[j];
binary[j] = binary[i - j - 1];
binary[i - j - 1] = temp;
}
}
int main() {
int decimal = 23;
int binary[8] = {0};
decimalToBinary(decimal, binary);
printf("%d的二进制数为:", decimal);
for (int i = 0; i < 8; i++) {
printf("%d", binary[i]);
}
printf("\n");
return 0;
}
```