如何在c++中将无符号char转换为无符号int



我有以下代码:

const unsigned char *a = (const unsigned char *) input_items;

input_items基本上是二进制文件的内容。

现在a[0]=7,我想把这个值转换成无符号的int

unsigned int b = (unsigned int) a[0];

并打印这两个值,我得到:

a[0] = 7
b = 55

为什么b不包含7?如何得到b=7?

我想我现在看到了问题:您将字符的值打印为字符

unsigned char a = '7';
std::cout << a << 'n';

这将使用ASCII值55打印字符'7'

如果要获得数字字符的相应整数值,可以依赖于所有数字字符必须连续编码,从零开始,到九结束。这意味着你可以从任何数字字符中减去'0',得到它的整数值:

unsigned char a = '7';
unsigned int b = a - '0';

现在b将等于整数值7

最新更新