gpt4 book ai didi

c++ - 如何在保持其值的同时将 C++ unsigned char 变量转换为 char 变量

转载 作者:行者123 更新时间:2023-11-28 04:30:55 26 4
gpt4 key购买 nike

抱歉,我已经检查了我的代码并找到了我的问题所在。

我希望用 C++ 方法来转换数字。原始变量是unsigned char我存储在 char 中变量 a .现在我需要投这个 adouble同时保持其原始无符号值。我该怎么做?

编辑:
我没想到我的问题会如此困惑。这是一个简单的例子

unsigned char a;
double b;
a = 140;
char c = static_cast<char>(a);
b = static_cast<double>(c);
std::cout << b << std::endl;

这会打印 -116 的结果, 但我真正希望的是双 140 .那我怎么能这样做呢?

编辑 v2:

场景是这样的:我用fstream从一个文件中读取了1024字节。 1024 字节包含 int数字以及 unsigned char数字。这些unsigned char我要转换为 double 的数字类型。我只是把它们全部读到 std::vector<char>数组,然后我需要解压这些数字。其中一些将被转换为 double我在这里遇到了我的问题。

如果我的问题是由滥用 c++ 引起的,请问处理此任务的正确方法是什么?

最佳答案

这个有效:

b = static_cast<double>(static_cast<unsigned char>(c));

或:

b = static_cast<unsigned char>(c);

或:

b = c < 0 ? c + 256 : c;

关于c++ - 如何在保持其值的同时将 C++ unsigned char 变量转换为 char 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52940393/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com