Error[8]: Undefined offset: 2, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述我要做的是将double转换为十六进制字符串然后再转换为double. 以下代码执行转换为双十六进制字符串. char * double2HexString(double a){ char *buf = new char[17]; // double is 8-byte long, so we have 2*8 + terminating \0 char *d2c; d2c = 我要做的是将double转换为十六进制字符串然后再转换为double.

以下代码执行转换为双十六进制字符串.

char * double2HexString(double a){   char *buf = new char[17]; // double is 8-byte long,so we have 2*8 + terminating 
#include <iostream>#include <string>#include <stdio.h>std::string double2hexastr(double d) {  char buffer[25] = { 0 };  ::snprintf(buffer,25,"%A",d); // Todo Check for errors  return buffer;}double hexastr2double(const std::string& s) {  double d = 0.0;  ::sscanf(s.c_str(),"%lA",&d); // Todo Check for errors  return d;}int main() {  std::cout << "0.1 in hexadecimal: " << double2hexastr(0.1) << std::endl;  std::cout << "Reading back 0X1.999999999999AP-4,it is ";  std::cout << hexastr2double("0X1.999999999999AP-4") << std::endl;}
char *d2c; d2c = (char *) &a; char *n = buf; int i; for(i = 0; i < 8; i++) { sprintf(n,"%02X",*d2c++); n += 2; } *(n) = '[+++]';}

这似乎工作,但是,我不知道如何将结果字符串转换回double.
请指教 :)

解决方法 我很惊讶地看到没有人提出标准解决方案,这是ISO C99标准中的%格式说明符. [+++] 总结

以上是内存溢出为你收集整理的c – 双倍到十六进制字符串和十六进制字符串加倍全部内容,希望文章能够帮你解决c – 双倍到十六进制字符串和十六进制字符串加倍所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 165, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 3, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述我要做的是将double转换为十六进制字符串然后再转换为double. 以下代码执行转换为双十六进制字符串. char * double2HexString(double a){ char *buf = new char[17]; // double is 8-byte long, so we have 2*8 + terminating \0 char *d2c; d2c = 我要做的是将double转换为十六进制字符串然后再转换为double.

以下代码执行转换为双十六进制字符串.

char * double2HexString(double a){   char *buf = new char[17]; // double is 8-byte long,so we have 2*8 + terminating 
#include <iostream>#include <string>#include <stdio.h>std::string double2hexastr(double d) {  char buffer[25] = { 0 };  ::snprintf(buffer,25,"%A",d); // Todo Check for errors  return buffer;}double hexastr2double(const std::string& s) {  double d = 0.0;  ::sscanf(s.c_str(),"%lA",&d); // Todo Check for errors  return d;}int main() {  std::cout << "0.1 in hexadecimal: " << double2hexastr(0.1) << std::endl;  std::cout << "Reading back 0X1.999999999999AP-4,it is ";  std::cout << hexastr2double("0X1.999999999999AP-4") << std::endl;}
char *d2c; d2c = (char *) &a; char *n = buf; int i; for(i = 0; i < 8; i++) { sprintf(n,"%02X",*d2c++); n += 2; } *(n) = '';}

这似乎工作,但是,我不知道如何将结果字符串转换回double.
请指教 :)

解决方法 我很惊讶地看到没有人提出标准解决方案,这是ISO C99标准中的%格式说明符. [+++] 总结

以上是内存溢出为你收集整理的c – 双倍到十六进制字符串和十六进制字符串加倍全部内容,希望文章能够帮你解决c – 双倍到十六进制字符串和十六进制字符串加倍所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 165, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
c – 双倍到十六进制字符串和十六进制字符串加倍_C_内存溢出

c – 双倍到十六进制字符串和十六进制字符串加倍

c – 双倍到十六进制字符串和十六进制字符串加倍,第1张

概述我要做的是将double转换为十六进制字符串然后再转换为double. 以下代码执行转换为双十六进制字符串. char * double2HexString(double a){ char *buf = new char[17]; // double is 8-byte long, so we have 2*8 + terminating \0 char *d2c; d2c = 我要做的是将double转换为十六进制字符串然后再转换为double.

以下代码执行转换为双十六进制字符串.

char * double2HexString(double a){   char *buf = new char[17]; // double is 8-byte long,so we have 2*8 + terminating 
#include <iostream>#include <string>#include <stdio.h>std::string double2hexastr(double d) {  char buffer[25] = { 0 };  ::snprintf(buffer,25,"%A",d); // Todo Check for errors  return buffer;}double hexastr2double(const std::string& s) {  double d = 0.0;  ::sscanf(s.c_str(),"%lA",&d); // Todo Check for errors  return d;}int main() {  std::cout << "0.1 in hexadecimal: " << double2hexastr(0.1) << std::endl;  std::cout << "Reading back 0X1.999999999999AP-4,it is ";  std::cout << hexastr2double("0X1.999999999999AP-4") << std::endl;}
char *d2c; d2c = (char *) &a; char *n = buf; int i; for(i = 0; i < 8; i++) { sprintf(n,"%02X",*d2c++); n += 2; } *(n) = '';}

这似乎工作,但是,我不知道如何将结果字符串转换回double.
请指教 :)

解决方法 我很惊讶地看到没有人提出标准解决方案,这是ISO C99标准中的%格式说明符. 总结

以上是内存溢出为你收集整理的c – 双倍到十六进制字符串和十六进制字符串加倍全部内容,希望文章能够帮你解决c – 双倍到十六进制字符串和十六进制字符串加倍所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1236896.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存