无符号int的等效位集



编写一个程序,将ANSI编码的字符串转换为二进制字符串。我的ANSI值是É。

我是这样做的:

int ascii; //used to store ASCII number of a character
int length = strlen(input);
char letter = NULL;
for(int x=0;x<length;x++) //repeat until the input is read
{
ascii = input[x];
bitset<8> binary(ascii);
}

然而,由于ascii是int类型,所以我得到的值是-56,当使用bitset找到它的二进制值时,我得到的是00110011(这是字符É的错误二进制值)。相反,我应该得到11001000(É的正确二进制)。我知道如果ascii类型是unsigned int,那么我会得到正确的二进制输出。但是,bitset不接受unsigned int类型;因此,有没有bitset的等价物可以接受unsighed int?或者有其他方法可以进行二进制转换吗?

您有一个X-Y问题。

您应该使用wideunicode变量类型。

您要查找的std::bitset是:
std::bitset<sizeof(unsigned int) * CHAR_BIT>

CCD_ 11是CCD_ 12中的字节数
CHAR_BIT是一个字节中的位数。

相关内容

最新更新