#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char *get2string(int num)
{
char *buffer = NULL, *temp = NULL;
int i = 0;
buffer = (char*)malloc(33); // 申请32字节长度char空间,用来存储32bit的2进制字符串
temp = buffer;
for (; i < 32; i++)
{
// 从第31bit开始依次获取num的二进制位值是0还是1
temp[i] = num & (1 << (31-i)); // 获取第 31-i 位的二进制bit值
temp[i] = temp[i] >> (31-i); // 将第 31-i 位值放在temp对应的位上
temp[i] = (temp[i] == 0) ? '0' : '1'; // 将第 31-i 位值从数值转换为字符
}
buffer[32] = '\0';
return buffer;
}
char *get16String(int num)
{
char *buffer = NULL, *temp = buffer;
int i = 0;
buffer = (char*)malloc(11); // 申请容纳16进制字符串的空间(0xFFFFFFFF)
buffer[0] = '0';
buffer[1] = 'x';
buffer[10] = '\0';
二进制和16进制字符串转换
最新推荐文章于 2024-10-14 10:17:16 发布
本文详细介绍了如何在C++编程中将二进制字符串转换为16进制字符串,以及如何将16进制字符串还原为二进制。通过实例代码和步骤解析,帮助读者理解这两种转换过程的关键点和技巧。
摘要由CSDN通过智能技术生成