将0-63之间(包含0和63)的int类型数据压缩到6位二进制字符串:
void IntToChar6(int i_num, char* c_num, int size)
{
char temp[6];
itoa(i_num, temp, 2); // 将int型转换为二进制字符串
int len = strlen(temp);
if (len < size)
{
for (int i = 0; i < len; i++)
{
c_num[size - len + i] = temp[i];
}
// 不够6位则补零
for (int j = 0; j < (size - len ); j++)
{
c_num[j] = 0 + 48;
}
}
}
输入一个二进制字符串,输出十进制数
例:str=“1100”
输出:12
int CharToInt(char* c_num, int size)
{
int num = 0;
for (int i = 0; i < size; i++)
{
num = num * 2 + (c_num[i] - '0');
}
return num;
}