二进制和16进制字符串转换

本文详细介绍了如何在C++编程中将二进制字符串转换为16进制字符串,以及如何将16进制字符串还原为二进制。通过实例代码和步骤解析,帮助读者理解这两种转换过程的关键点和技巧。
摘要由CSDN通过智能技术生成
#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';
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值