将double转换为LSBF(小Endian)十六进制字符串
Convert double to LSBF (little Endian) hexadecimal string
我正在尝试将double转换为小的Endian十六进制字符串,或者直接转换为特定类型的long(请参阅下文)。
以前,我将预定义的小Endian十六进制字符串转换为长字符串,如下所示。
string hcommand = "01AC";
char * p;
long n = strtol(hcommand.c_str(), &p, 16);
这起到了预期的作用。
现在,我正在尝试将double转换为little-Endian(最低有效字节优先)形式的十六进制字符串(然后替换上面代码中的hcommand),或者直接从double转换成上面看到的相同类型的long。
我试过这个,它的处理过程与上面不同。
double myDouble = 44033;
long hcommand = (long)_byteswap_ulong((int)myDouble);
谢谢。
我发现,一旦我将_byteswap_ulong转换为_byteswap_ushort,结果是相同的。
我怀疑问题在于您只看到四个字节中的两个。
在第一个示例中,您得到的值为0xAC01(428)。
在第二个示例中,取为0x01AC0000的myDouble
,并将其转换为0x0000AC01(28049408)。
如果您只想要其中的一个单词,请使用_byteswap_ushort((unsigned short)myDouble)
。
相关文章:
- 如何在openssl-ecc中获取十六进制格式的私钥
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 通过错误处理,在C++中可靠地获得用户十六进制输入
- 为什么mpfr_printf与十六进制浮点(%a转换说明符)的printf不同
- 在 std::无符号字符的向量处存储 int 的十六进制表示形式
- 指向存储在字符串 c++ 中的十六进制
- 读取文件中所有可能的十六进制 16 字节序列并打印每个序列
- C ++如何使用UTF8十六进制代码打印UTF8符号?
- 如何将字节数组元素替换为修改的十六进制 ASCII 符号?
- 如何在C++中将十六进制字符串转换为文本数据
- 使用 sprintf 将十六进制0xAABBCC转换为字符串"AA:BB:CC"
- 绝对编码器十六进制输入
- 为什么C++总是显示十六进制内存地址,而不仅仅是整数?
- C++17 十六进制浮点文字单精度后缀冲突?
- 如何在C 中的Little Endian中读取来自二进制文件的单独的十六进制字符
- 将Integer转换为Little Endian十六进制字符串
- 将double转换为LSBF(小Endian)十六进制字符串