如何在 C++ 中将 unsigned char 转换为 unsigned int?
How to convert unsigned char to unsigned int in c++?
我有如下一段代码:
const unsigned char *a = (const unsigned char *) input_items;
input_items基本上就是一个二进制文件的内容。
现在 a[0] = 7,我想将此值转换为 unsigned 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
。
我有如下一段代码:
const unsigned char *a = (const unsigned char *) input_items;
input_items基本上就是一个二进制文件的内容。
现在 a[0] = 7,我想将此值转换为 unsigned 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
。