
面试考官邢老师为您分享以下优质知识
在C语言中,将数据转换为二进制可以通过多种方式实现,具体方法取决于数据类型和转换需求。以下是常见的转换方法及示例代码:
一、整数转二进制
通过不断除以2取余数,并将余数倒序排列,可得到二进制表示。例如将十进制数13转换为二进制:
```c
include
void decimalToBinary(int n) {
int remainder, binary = {0};
int index = 31;
while (n >
0) {
remainder = n % 2;
binary[index] = remainder;
n = n / 2;
index--;
}
printf("二进制结果: ");
for (int i = index; i >
= 0; i--) {
printf("%d", binary[i]);
}
printf("n");
}
int main() {
int num = 13;
decimalToBinary(num);
return 0;
}
```
输出:`二进制结果: 1101`
使用内置函数
- `printf`函数支持直接输出二进制数(需指定格式说明符`%b`):
```c
include
int main() {
int num = 13;
printf("二进制结果: %bn", num);
return 0;
}
```
- `itoa`函数(非标准库,需包含`stdlib.h`):
```c
include
include
int main() {
int num = 13;
char binary = itoa(num, 2);
printf("二进制结果: %sn", binary);
return 0;
}
```
注意:`itoa`在某些编译器中可能不可用,建议使用`snprintf`替代:
```c
include
include
int main() {
int num = 13;
char binary;
snprintf(binary, sizeof(binary), "%b", num);
printf("二进制结果: %sn", binary);
return 0;
}
```
二、字符转二进制
将字符转换为二进制通常指将字符的ASCII码转换为二进制表示:
```c
include
void charToBinary(char c) {
printf("字符 '%c' 的ASCII码: %dn", c);
for (int i = 7; i >
= 0; i--) {
printf("%d", (c & (1