C++ 将字符串转换为无符号字符

C++ 将字符串转换为无符号字符,c++,aes,unsigned-integer,unsigned-char,C++,Aes,Unsigned Integer,Unsigned Char,我花了一段时间试图将字符串转换为未签名字符数组,但没有成功。 我正在做一个AES实现,除了输入读取部分之外,我已经完成了所有的设置。 这是我在ATM机上的密码 string text = "E3 FD 51 12" ; int size = text.length(); unsigned char* charText = new unsigned char[size/2]; int i = 0; std::istringstream text_2(text);

我花了一段时间试图将字符串转换为未签名字符数组,但没有成功。 我正在做一个AES实现,除了输入读取部分之外,我已经完成了所有的设置。 这是我在ATM机上的密码

string text = "E3 FD 51 12" ;
    int size = text.length();

    unsigned char* charText = new unsigned char[size/2];
    int i = 0;
    std::istringstream text_2(text);

    unsigned int c;
    unsigned char ch;
    while (text_2 >> hex >> c)
    {
        ch = c;
        cout <<ch;
    }
string text=“E3 FD 51 12”;
int size=text.length();
无符号字符*图表文本=新的无符号字符[size/2];
int i=0;
std::istringstream文本_2(文本);
无符号整数c;
无符号字符ch;
while(text_2>>hex>>c)
{
ch=c;

cout只需将字符输出为int

while (text_2 >> hex >> c)
{
    ch = c;
    cout << hex << ( int )ch;
}
while(text_2>>hex>>c)
{
ch=c;

如果前两个字符不在ASCII范围内,51将生成一个
'Q'
,最后一个字符是表单提要。您可能会称之为胡言乱语,但您期望的是什么…?不是吗?我需要做什么来正确读取它?如果您不喜欢将这些值转换为它们的字符值,那么什么才是正确的?如果您打印
 char
值为
int
使用
std::cout所以我读对了,只是输出错误?好的,但是如果我以当前的方式存储,在进行矩阵乘法时不会引起问题吗?对不起,我不明白你在说什么。我需要用0xef来乘法存储的值