将字符串形式输入的比特串转换为相应的十六进制表示的函数

前端之家收集整理的这篇文章主要介绍了将字符串形式输入的比特串转换为相应的十六进制表示的函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

//将整数x的第i位(从左到右)设为1,其中bit_len为比特串的长度void Set(int *x,int i,int bit_len){    (*x) |= (1<<bit_len-i-1);}//将字符串型的比特串解析为相应的整数//如输入为"11110011",则输出为243int ParseBitStringToInt(char * bitString){    int x = 0;    int strLength = strlen(bitString);    for(int i =0 ; i< strLength; i++)    {        if (bitString[i] == '1')        {            Set(&x,i,strLength);        }    }    return x;}//将整数转换为相应的十六进制形式的字符串//如若x=243,则buf = "00F3"。bool GetHexStringOfInt(int x,char* buf){    if (strlen(buf) < sizeof(x))    {        return false;    }    char hexChars[] = "0123456789ABCDEF";    int i = 0,index = 0;    for(; i < sizeof(int); i++)    {        index = (x & (0xF << i*sizeof(int))) >> i*sizeof(int);        buf[sizeof(int) - 1 - i] = hexChars[index];    }    buf[i] = '/0';    return true;}int main(){    char buf[]="1011101011111101";    GetHexStringOfInt(ParseBitStringToInt(buf),buf);    printf("%s",buf);    return 0;}

猜你在找的区块链相关文章