C语言轻松搞定二进制转换,小白也能快速上手!


c

include

include

// 函数声明

void binary_to_decimal(int n);

void decimal_to_binary(int n);

int main() {

int num;

char bin_str[100];

printf("请输入一个整数: ");

scanf("%d", &num);

// 将十进制数转换为二进制字符串

sprintf(bin_str, "%d", num);

printf("十进制 %d 的二进制表示为: %s", num, bin_str);

// 将二进制字符串转换为十进制数

printf("请输入一个二进制字符串(例如: 1010): ");

scanf("%s", bin_str);

int dec_num = binary_to_decimal(atoi(bin_str));

printf("二进制 %s 对应的十进制数为: %d", bin_str, dec_num);

return 0;

}

// 将十进制数转换为二进制

void binary_to_decimal(int n) {

int i, remainder, binary[32];

for (i = 8; i >= 0; i--) {

remainder = n % 2;

binary[i] = remainder + '0';

n /= 2;

}

for (i = 0; i < 32; i++) {

if (binary[i] != '\0') {

printf("%c", binary[i]);

}

}

printf("");

}

// 将二进制字符串转换为十进制数

void decimal_to_binary(int n) {

int i, j, temp, remainder;

for (i = 0; i < 4; i++) {

temp = n;

remainder = temp % 2;

n = n / 2;

if (remainder == 0) {

printf("%c", remainder);

break;

} else {

printf("%c", remainder + '0');

}

}

printf("");

}

这个程序首先定义了两个函数`binary_to_decimal`和`decimal_to_binary`,分别用于将十进制数转换为二进制数和从二进制数转换回十进制数。在`main`函数中,我们让用户输入一个整数,然后调用这两个函数进行转换,并打印结果。

- `binary_to_decimal`函数使用了一个循环来处理每一位数字,并将它们转换为相应的字符。

- `decimal_to_binary`函数也是使用一个循环来处理每一位数字,但这次是从右到左处理,即最高位在最左边。

这个程序是一个简单的示例,但它展示了如何在C语言中进行二进制和十进制的转换。对于更复杂的需求,你可能需要使用更专业的库或工具。