编写程序打印查看97.6875和-97.6875的double型值在计算机爱iE
754存储格式按字节的十六进制值,验证是否与教材所给结果一致。同时也打印
查看97.6875和-97.6875的float型值在计算机内的IE754存储格式按字节的
十六进制值。
不会写.有没有人可以帮帮我

用C语言来进行编写编程
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- a5156520 2022-09-20 10:23关注
一个办法就是,用一个无符号8位的整指针指向把double型和float型浮点数值的位置,然后逐字节打印其十六进制值即可。代码如下, 仅供参考,如有不对之处,请不吝赐教:
参考链接:
分享一个打印浮点型数据的十六进制形式的函数_GGuy的博客-CSDN博客_浮点数16进制输出
uint8_t是什么数据类型_林一元的博客-CSDN博客_uint8_t是什么数据类型#include <stdio.h> #include <stdint.h> int main(void){ double a = 97.6875; //https://blog.csdn.net/weixin_38324309/article/details/113108087 //https://blog.csdn.net/qq_45512097/article/details/124458205 uint8_t* pa = (uint8_t*)&a; double b = -97.6875; uint8_t* pb = (uint8_t*)&b; printf("double型%f的按字节的内存十六进制值为:\n",a); //printf("sizof(a)=%d,sizeof(b)=%d\n",sizeof(a),sizeof(b)); for(int i=0;i<sizeof(a);i++){ uint8_t ch = pa[i]; printf("%x ",ch); } printf("\ndouble型%f的按字节的内存十六进制值为:\n",b); for(int i=0;i<sizeof(b);i++){ uint8_t ch = (uint8_t)pb[i]; printf("%x ",ch); } float fa = 97.6875f; //https://blog.csdn.net/weixin_38324309/article/details/113108087 //https://blog.csdn.net/qq_45512097/article/details/124458205 uint8_t* pfa = (uint8_t*)&fa; float fb = -97.6875f; uint8_t* pfb = (uint8_t*)&fb; printf("\n\nfloat%f的按字节的内存十六进制值为:\n",fa); //printf("sizof(a)=%d,sizeof(b)=%d\n",sizeof(fa),sizeof(fb)); for(int i=0;i<sizeof(fa);i++){ uint8_t ch = pfa[i]; printf("%x ",ch); } printf("\nfloat型%f的按字节的内存十六进制值为:\n",fb); for(int i=0;i<sizeof(fb);i++){ uint8_t ch = (uint8_t)pfb[i]; printf("%x ",ch); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录