news 2026/4/16 11:01:40

%d输出float类型,%f输出int类型

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
%d输出float类型,%f输出int类型

几个要注意的点:
1.并不会隐式类型转换,只是以%d的存储形式(低32位),%f(double类型的存储形式)输出
2.浮点数输出时都是以double类型的存储形式输出的,虽然在内存上以float类型存储形式存储的
3.float,double类型的存储形式遵循IEEE754标准,详情请查看IEEE754标准:double,float类型在内存中具体是怎么存的
4.像int->float,float->int等基本数据类型转换,会进行比特位的转换
5.int*->double*(所指向的空间并不进行比特位的转换),重新解释指针为:以int为一个模块操作指针->以double为一个模块操作指针

// 输出格式与类型不一致,输出结果实际上与存储有关 // 1.int以%f格式输出,结果一般为0.000000 // 2.long long 类型的很大的数,用printf(“%f”)打印出来可能为一个小数; // 3.double、float以%d格式输出(输出时,float会转化为double存储形式;%d取低32位) // (1)结果一般为绝对值很大的数(当浮点数不能精确表示时,低32位不为0) // (2)结果为0,如:xx.0、或xx.5、或xx.25等(当浮点数能精确表示时,低32位为0) #include <stdio.h> int main() { // int以%f格式输出,结果一般为0.000000 // float以%d格式输出 // 结果一般为绝对值很大的数 // 结果为0,若浮点数为xx.0、或xx.5、或xx.25等 printf("%f\n", 1); // 结果:0.000000 printf("%f\n", 0xffffffff); // 结果:0.000000 printf("%f\n", 0x3ff3ae147ae147a3); // 结果:1.230000 printf("%d\n", 2.34); // 结果:-343597384 printf("%d\n", 5.78); // 结果:1374389535 printf("%d\n", 1.0); // 结果:0.000000 printf("%d\n", 2.0); // 结果:0.000000 printf("%d\n", 2.5); // 结果:0.000000 printf("%d\n", 103.25); // 结果:0.000000 printf("----------------------------------------------------------------------------\n"); // 若想输出转换后的类型,必须强制类型转换(会容易让人混淆,因为感觉上会隐式类型转换,但实际上 // 没有"=",不会自动转换) printf("%f,%d\n", (double)1, (int)1.0); // 结果:1.000000,1 printf("----------------------------------------------------------------------------\n"); // int*->double*,只是指针类型的转换(所指向的空间并不进行比特位的转换)。 int c = 1; int *p_int = &c; double *p_double = NULL; p_double = (double*)p_int; printf("llx:0x%llx\n", *p_double); // 查看double指向的内存空间有什么数据,我这里内存中存了:0x1b00000001 printf("%f,%d\n", *p_double, *p_double); // 结果:0.000000,1 // 实际上int的存储结构没变,将double指向的内存空间的数据(0x1b00000001)以%f格式输出 // 应该这么转 double c2 = (double)c; // 转成了了double类型的存储形式(进行了比特位的转换) double *p_double2 = &c2; printf("llx:0x%llx\n", c); // 内存中存了(比特位):0x1 printf("llx:0x%llx\n", *p_double2); // 内存中存了(比特位):0x3ff0000000000000 printf("%f,%d\n", *p_double2, *p_double2); // 结果:1.000000,0 printf("----------------------------------------------------------------------------\n"); }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 18:48:22

对比zero-shot,few-shot两种提示方式

第一章zero-shot1.1概念zero-shot指的是零样本提示词,不提供示例直接让llm处理提示词生成答案1.2实现from langchain import PromptTemplate from langchain_community.llms import Ollama model Ollama(model"qwen2.5:7b") # 定义模板 template "我的邻居姓{…

作者头像 李华
网站建设 2026/4/5 19:29:38

PyTorch GPU环境搭建全攻略:Miniconda+CUDA+CUDNN一步到位

PyTorch GPU环境搭建全攻略&#xff1a;MinicondaCUDACUDNN一步到位 在深度学习项目开发中&#xff0c;最令人沮丧的场景之一莫过于代码写完后&#xff0c;运行时却报出 CUDA out of memory 或者更糟——“PyTorch not compiled with CUDA support”。这种问题往往不是来自模型…

作者头像 李华
网站建设 2026/4/7 8:20:52

众包地图十年演进(2015–2025)

众包地图十年演进&#xff08;2015–2025&#xff09; 过去十年&#xff0c;中国众包地图从“用户纠错简单POI上报”的辅助模式&#xff0c;跃迁为“大规模车辆/手机轨迹图像众包AI自动化处理实时动态更新”的核心制图机制&#xff0c;主要玩家高德、百度、腾讯主导&#xff0c…

作者头像 李华
网站建设 2026/4/13 22:47:04

从零开始学AI:Miniconda-Python3.10带你入门深度学习

从零开始学AI&#xff1a;Miniconda-Python3.10带你入门深度学习 在人工智能浪潮席卷各行各业的今天&#xff0c;越来越多的学习者和开发者希望迈入深度学习的大门。但真正动手时&#xff0c;很多人却被“环境配置”这第一道门槛拦了下来&#xff1a;明明代码一模一样&#xff…

作者头像 李华
网站建设 2026/4/16 10:57:25

Markdown+Jupyter双剑合璧:Miniconda-Python3.10下的高效写作体验

Markdown与Jupyter的协同革命&#xff1a;基于Miniconda-Python3.10的现代技术写作实践 在数据驱动的时代&#xff0c;一篇技术报告的价值不再仅仅取决于它的结论是否正确&#xff0c;而更在于其推理过程是否透明、可验证。我们常常看到这样的场景&#xff1a;研究人员提交了一…

作者头像 李华
网站建设 2026/4/7 15:14:58

【豆包】生图无水印下载js,豆包去除左上角水印js、豆包去水印浏览器扩展插件js、豆包去掉ai生成,豆包如何去掉水印,豆包去水印,豆包图片去水印下载

豆包ai去水印下载 // UserScript // name 豆包AI生图无水印下载 // namespace http://tampermonkey.net/ // version 1.0 // description 在豆包AI生图页面自动下载无水印原图 // author You // match https://www.doubao.com/* // match …

作者头像 李华