从字符指针转换为 C 中的整数
Casting from char pointer to integer in C
我有一个char类型的指针数组buf,我想将其中的每个元素转换为无符号int并将其存储在无符号int或int数组中。
问题是,下面用于转换的代码的第二个代码命令在转换无符号 int 后返回一个负值,而我只期望从 0 到 255 的正值。为什么当我使用无符号它时它返回负值?我该怎么办,使第二行代码中的强制转换仅返回 0 到 255 之间的正值?
int array [100];
array[l]=((unsigned int(buf[0]))*5));
请帮我。
谢谢。
第二条指令太复杂了。
将您的说明分成单独的行。
-
在一行中,访问"char 类型"中的实际存储值指针数组"。
-
在后续行中,将其转换为所需的任何内容。
这将帮助您诊断问题,并使代码更具可读性和可维护性。
你想要*(reinterpret_cast<unsigned char *>(&buf[0])))
不要(unsigned int(buf[0]))
。不要忘记在将其乘以 5 之前将其转换为int
。
我认为您应该将array
声明为unsigned int
。此外,使用 unsigned char
而不是unsigned int
进行强制转换,然后将其分配给array
元素。这是因为将负值转换为无符号目标类型将按照标准第 4.7 节第 2 段C++进行。
unsigned int array [100];
array[l]=((unsigned char(buf[0]))*5));
相关文章:
- 显示基于用户输入的整数的字符
- 尝试将字符串/字符转换为整数会产生意外结果
- 如何使用C++将字符串中的字符转换为整数变量
- 将超出范围的整数分配给有符号字符类型
- 碱基对映射 - 将 argv[i] 移动到整数或字符作为输入
- 当我输入字符类型的数字时,为什么我无法获得整数?
- 输入验证以筛选出字符、字符串和一系列整数
- 字符和整数中 **(ptr+1) 的值差异
- 如何将整数向量值插入字符向量
- 字符到整数数组
- 为什么对无符号字符进行算术运算会将它们提升为有符号整数
- 不能将字符转换为整数吗?
- 如果我们在其中输入一个整数,则字符会给出整数作为输出,但是当分配给它一个整数时,这不会发生。为什么?
- 为什么我们不能将使用异或运算找到的整数转换为字符?
- 有没有办法将字符类型转换为整数?
- 在c++中读取文件时,它如何自动将字符放入字符数组,将数字放入整数变量
- (C/C++)fscanf_s从txt文件以字符形式读取数组时缺少整数参数错误
- 如何从字符数组C++中提取2个整数并将它们存储在2个变量中(初学者)
- 取消随机排列整数/字符数组
- 双倍到无符号的整数/字符