我正在写一个算法要求我将值插入到std::string无符号的1字节整数(0 - 255)中,并要求我将字符串的各个字符的值打印为整数,但是,我不断得到负值.我的猜测是,字符存储在带std::string符号的1字节字符(-128到127)中,因此,为什么我得到输出的负值.负值是我插入的正值的等效负形式.我做了一些研究,但似乎无法找到一种方式来表达我的问题,产生我正在寻找的答案.
不,这是依赖于实现的.
std::string是一个别名std::basic_string<char>,所以问题归结为char你的plarform/implementation 的签名.
如果你想要它没有签名,显式转换它:
std::cout << static_cast<int>(static_cast<unsigned char>(ch));
Run Code Online (Sandbox Code Playgroud)
或者,正如评论中所建议的那样,使用vector<uint8_t>而不是string.
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |