你能把一个有符号的char数组转换成一个无符号的整数吗
Can you convert a signed char array to an unsigned integer?
我有一个无符号的int,它被转换成一个有符号的char,就像这个
unsigned int b = 128;
char a[4];
a[0] = b >> 24;
a[1] = b >> 16;
a[2] = b >> 8;
a[3] = b >> 0;
在不知道b
的值的情况下,我可以取回数字吗?对于大于128的数字,以下方法失败。从数组中获取数字似乎有一些歧义。
unsigned int c = 0;
c += a[0] << 24;
c += a[1] << 16;
c += a[2] << 8;
c += a[3];
cout<<c<<endl;
unsigned int c = ((a[0] << 24) & 0xFF000000U)
| ((a[1] << 16) & 0x00FF0000U)
| ((a[2] << 8) & 0x0000FF00U)
| ( a[3] & 0x000000FFU);
或
unsigned int c = unsigned(a[0]) << 24
| unsigned(a[1]) << 16
| unsigned(a[2]) << 8
| unsigned(a[3]);
signed
转换为unsigned
。如果你真的想这样做,你必须手动完成。不容易,AFAIK。
看看这个问题。
相关文章:
- 如何在C++中将一个无符号的 int 转换为两个无符号的短裤?
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 我正在尝试使用 c++ 创建一个货币转换程序,我不知道如何继续
- 为什么我的模板化函数需要从一个迭代器转换到另一个迭代器?
- 如果需要转换,我可以在读取参数的同时将其移动到另一个参数吗?
- 为什么转换函数声明不需要至少一个定义类型说明符
- 在 C++ 中将一个模板类型的对象类型转换为另一个模板类型
- 编写一个程序,帮助Tudio将MIDI音符转换为名称和八度音阶
- c++:如何打印出一个强制转换的 int 值?
- MSVC 错误:4 个重载中的任何一个都无法转换所有参数类型
- 是否可以创建一个用户定义的文本,将字符串文本转换为 own 类型的数组?
- 如何从一个容器中获取某些元素并将其转换插入到另一个容器中?
- 从 int 中剥离位时,编译器会警告一个转换,但不警告其他转换.有解决方法吗?
- 我用c++做了一个转换器,把英里转换成公里,把公里转换成英里,把赛尔修斯转换成法赫伦海特,把法赫伦海特转换成赛尔修斯
- 一个转换错误,它说没有从"char*"到字符的转换
- 如何摆脱温度并使用一个转换来完成工作
- 是否可以在C++中有一个转换迭代器
- C++简介:生成一个转换表,通过while或do/while循环将度数转换为弧度
- 如何用另一个转换来逆转(或取消)OpenGL SRT转换
- 有一个转换构造函数有什么意义?