AYM*_*ADA 7 c++ pointers type-conversion
这是我的代码:
std::vector<unsigned char> data;
... // put some data to data vector
char* bytes= reinterpret_cast<char*>(imageData.data());
Run Code Online (Sandbox Code Playgroud)
我的问题是在向量'数据'中我有值为255的字符.在字节指针转换后,我的值为-1而不是255.我应该如何正确转换这些数据?
编辑
好吧,它出现了,我真的不需要转换,但只有一点订单.THX寻求帮助
char可以是签名或未签名,具体取决于平台.如果它已经签名,就像在您的平台上一样,它具有从标准-128到保证的范围127.对于通用平台,它是8位类型,因此它们是唯一可以容纳的值.这意味着你不能代表255一个char.
现在来解释你seing什么:有符号数的现代处理器的典型代表是二进制补码,为此,-1具有最大的可表示位模式(所有的),这是一样255的ùnsigned char.所以演员阵容完全符合你的要求:重新诠释unsigned charsas (signed) chars.
但是我不能告诉你如何正确地转换数据,因为这取决于你想用它做什么.您的工作方式可能适用于您的目的,如果不是您唯一的选择是更改数据类型.