Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
六角到长双c++; 是任何人都知道如何在C++中转换长双到十六进制,并从十六进制转换为长双。我已经使用istringstream将HEXstring转换为double并将其转换为long long,但我不知道如何将long double转换为double,以及如何测试类似的内容。_C++_Double_Type Conversion_Long Integer_Hex - Fatal编程技术网

六角到长双c++; 是任何人都知道如何在C++中转换长双到十六进制,并从十六进制转换为长双。我已经使用istringstream将HEXstring转换为double并将其转换为long long,但我不知道如何将long double转换为double,以及如何测试类似的内容。

六角到长双c++; 是任何人都知道如何在C++中转换长双到十六进制,并从十六进制转换为长双。我已经使用istringstream将HEXstring转换为double并将其转换为long long,但我不知道如何将long double转换为double,以及如何测试类似的内容。,c++,double,type-conversion,long-integer,hex,C++,Double,Type Conversion,Long Integer,Hex,如果你真的确定要这样做,你可以最大限度地使用union来“欺骗类型系统”。显然,这是原始内存访问,并附带了大量警告。最重要的一点是,它只“通常”起作用,但不受语言规范的保证 下面是输出长双精度的原始字节的代码。从十六进制字符串重新组装长双精度字符的代码应该不太难提供给您自己 #include <stdio.h> typedef union { long double ld; char bytes[sizeof(long double)]; } converter; in

如果你真的确定要这样做,你可以最大限度地使用union来“欺骗类型系统”。显然,这是原始内存访问,并附带了大量警告。最重要的一点是,它只“通常”起作用,但不受语言规范的保证

下面是输出长双精度的原始字节的代码。从十六进制字符串重新组装长双精度字符的代码应该不太难提供给您自己

#include <stdio.h>

typedef union {
  long double ld;
  char bytes[sizeof(long double)];
} converter; 

int main() {
  converter c;
  c.ld = 3.49;
  printf("0x");
  for (int i = 0; i < sizeof(long double); ++i) {
    printf("%x", c.bytes[i]);
  }
  printf("\n");
}
#包括
typedef联合{
长双ld;
字符字节[sizeof(长双精度)];
}转炉;
int main(){
转换器c;
c、 ld=3.49;
printf(“0x”);
对于(int i=0;i
你真的是指十进制而不是双精度吗?你是在问如何用十六进制和十进制打印数字吗?你的意思是像C99十六进制浮点表示法,还是仅仅是二进制数据的十六进制输出?