C语言 使用 printf 打印二进制格式

C语言 使用 printf 打印二进制格式

1、自定义函数打印二进制格式由于 printf 不支持 %b 来打印二进制格式,可以编写一个自定义函数来打印整数的二进制表示。

#include

void print_binary(unsigned int n) {

for (int i = sizeof(n) * 8 - 1; i >= 0; i--) {

putchar((n & (1 << i)) ? '1' : '0');

}

putchar('\n');

}

int main() {

unsigned int num = 5;

print_binary(num); // 输出: 00000000000000000000000000000101

return 0;

}

2、使用 printf 和位掩码如只打印有效位(忽略前导零),可以使用以下方法。

#include

void print_binary(unsigned int n) {

int i;

int leading_zero = 1;

for (i = sizeof(n) * 8 - 1; i >= 0; i--) {

int bit = (n >> i) & 1;

if (bit == 1) {

leading_zero = 0;

}

if (!leading_zero) {

printf("%d", bit);

}

}

if (leading_zero) {

printf("0");

}

printf("\n");

}

int main() {

unsigned int num = 5;

print_binary(num); // 输出: 101

return 0;

}

3、使用 C++ 中的 std::bitset如在使用 C++,可以使用 std::bitset 类,它直接提供了打印二进制格式的方法。

#include

#include

int main() {

int num = 5;

// 创建一个 32 位的数字表示

std::bitset<32> b(num);

// 输出: 00000000000000000000000000000101

std::cout << b << std::endl;

return 0;

}

4、使用 itoa 函数(非标准)一些平台提供了非标准的 itoa() 函数,它可以用来将整数转换为不同进制的字符串,包括二进制。

#include

#include

int main() {

int num = 5;

char binary[33]; // 用于存储二进制字符串的数组

itoa(num, binary, 2); // 转换为二进制(基数 2)

printf("%s\n", binary); // 输出: 101

return 0;

}

相关推荐

战旗战旗
365bet提款多久到账

战旗战旗

📅 08-03 👁️ 6944
如鸢孔融强度怎么样 孔融强度分析及命盘推荐
365bet提款多久到账

如鸢孔融强度怎么样 孔融强度分析及命盘推荐

📅 09-30 👁️ 5179
寻宝之旅开启!电影《深渊宝藏》北京首映
365篮球直播吧App

寻宝之旅开启!电影《深渊宝藏》北京首映

📅 09-13 👁️ 8713
饭后立刻漱口还是等几分钟?专家解读最佳口腔护理时间
365bet提款多久到账

饭后立刻漱口还是等几分钟?专家解读最佳口腔护理时间

📅 10-23 👁️ 6445
漢字「虈」:基本資料
365篮球直播吧App

漢字「虈」:基本資料

📅 09-19 👁️ 8681
轻松将文件从 PC 传输到 Android:包含6种解决方案
365bet提款多久到账

轻松将文件从 PC 传输到 Android:包含6种解决方案

📅 07-16 👁️ 7721
乘坐飞机如何领取报销凭证
365篮球直播吧App

乘坐飞机如何领取报销凭证

📅 10-30 👁️ 8089
《QQ飞车手游》b车中的弯道之王剃刀 特性性能全方位介绍
恩利(注射用依那西普)药品说明书
48365大写

恩利(注射用依那西普)药品说明书

📅 08-09 👁️ 7171