加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 将char *转换为double – 作为字节

发布时间:2020-12-16 10:23:55 所属栏目:百科 来源:网络整理
导读:我有一个代表double的字节数组: char number[8]; 我需要将它转换为实际的double(也有8个字节).基于我尝试过的建议,但它失败了: std::cout(*((*double)number))" is my number.n"; 为什么会失败,我该怎么办?当然,我可以使用一些魔术,但我不想这样做 - 它
我有一个代表double的字节数组:

char number[8];

我需要将它转换为实际的double(也有8个字节).基于我尝试过的建议,但它失败了:

std::cout<<(*((*double)number))<<" is my number.n";

为什么会失败,我该怎么办?当然,我可以使用一些<<<<<<魔术,但我不想这样做 - 它会消耗内存并使代码过于健壮.

解决方法

Why did it fail?

你这里有一个错字.

std::cout<<(*((*double)number))<<" is my number.n";

它应该是:

std::cout<<(*((double*)number))<<" is my number.n";

and what should I do?

您可以减少使用的括号数.

std::cout<< *(double*)number <<" is my number.n";

您应该使用C强制转换而不是C强化转换,因此很清楚您正在做什么.

std::cout<< *reinterpret_cast<double*>(number) <<" is my number.n";

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读