c语言中整数97按照%f的格式输出为什么是0.000000?

是因为在内存中存储的方式不一样吗?
谁能帮我解释一下,或者给我点相关的资料

1个回答

gengziqiang1
伪造的时空 回复李我远点: http://blog.csdn.net/solomon1558/article/details/40798901
3 年多之前 回复
qq_33747112
李我远点 没有了好像??提示 这个 :您要找的资源已被删除、已更名或暂时不可用。
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
c语言:整型和字符型的范围易错及分析

分析下面的程序:#includeint main(){ char c1, c2; c1 = 97; c2 = 98; printf("c1=%c,c2=%c\n", c1, c2); printf("c1=%d,c2=%d\n", c1, c2); return 0;}(1)运行时会输出什么信息?为什么?解:运行时输出:c1=a,c2=bc1=97,c2=98请按任意键继续. . .第一行输出是将

c语言格式输出剖析——用%d输出float类型数据与int类型%f格式输出

C语言学习实践                            摘要     本文将从C语言变量的本质,不同类型变量在内存中的存储方式,类型强制转换,格式输出4个方面阐述C语言初学阶段的一些问题。 关键词:内存存储,类型强制转换,反汇编   1. 变量 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。在诸如C语言等高级语言中,变量的使用屏蔽了数据在底层细节,

printf 使用%f输出整形变量,为什么为0?

#include void main(){      int i = 65535;     printf("%f",i) } 1,之所以没输出65535,这是C语言设计的原因。 2,之所以输出0,这是计算机体系结构的问题。 具体原因如下(至今无标准答案) 1、printf函数不进行任何类型转换,它只是从内存中读出你所提供的元素的值(按照%d,%f等控制字符提示的格式)。int型以补码

C语言合法整数

刷题时,错了一道. 后来看了一下,想了一下,对于刷题时的我,再给我一次机会,这题也是必错的~ 其实,刷题后,自己判断答案,还是上机自己实验一下,再得出结论,比较靠谱. // testvc6.cpp : Defines the entry point for the console application. // #include "stdafx.h" void fnTest(); int

南阳ACM 题目275:队花的烦恼一 Java版

队花的烦恼一时间限制:3000 ms  |  内存限制:65535 KB难度:1描述 ACM队的队花C小+经常抱怨:“C语言中的格式输出中有十六、十、八进制输出,然而却没有二进制输出,哎,真遗憾!谁能帮我写一个程序实现输入一个十进制数n,输出它的二进制数呀?”难道你不想帮帮她吗?^_^输入输入有多个数据,数据以EOF结束;每个数据ni(0<=ni<=1000010000)用空格隔开;(...

【NYOJ 分类——语言入门】——汇总(六)

题目266 题目信息 运行结果 本题排行 讨论区 字符串逆序输出 时间限制:3000 ms  |  内存限制:65535 KB 难度:0 描述给定一行字符,逆序输出此行(空格.数字不输出) 输入第一行是一个整数N(N 每组测试数据占一行,每行数据中间有且只有一个空格(这样你可以把此行当成两个字符串读取)。 每行字符长度不超过40

c语言:用%f输出实数,只能得到6位小数及求float型数据的有效位数

1.用%f输出实数,只能得到6位小数。程序:#includeint main(){double a = 1.0;printf("%f\n",a/3);return 0;}结果:0.333333请按任意键继续. . . 2.float型数据的有效位数。程序:#includeint main(){float a;a = 10000/3.0;printf("%f\n",a);return 0;}结果:3

转:C语言中的printf用%d输出float类型数据出现或以%f输出int型数据的结果为什么是0

原文地址:C语言中的printf用%d输出float类型数据出现或以%f输出int型数据的结果为什么是0

C语言的格式化输出函数printf

printf是C语言的标准输入输出库stdio提供的库函数,所以在使用它时,需要使用#include <stdio.h>指令包含stdio.h头文件。printf的功能用以显示格式化字符串的内容,其输入参数必须包括格式化字符串,可能需要提供插入在字符串指定位置的值。格式化字符串由普通字符和转换说明组成,普通字符完全如在格式化字符串中显示的那样打印出来,而转换说明以字符%开头,表示为插入值提供的占位符

c语言中-1除以2为什么等于0?

有符号整数的向右移位运算也并不等同于除以2的某次幂。(-1)>>1,这个操作结果一般不为0.但是(-1)/2在大多数C实现上求值结果都为0; 转载: int型数据:-1=(1000,0001B)原=(1111,1110B)反=(1111,1111B)补=(FFH)补。补码在计算机中进行的运算不同于一般的二进制数运算。他有自己的一套规则。比如加减法:[X+Y]补=[X]补+[Y]补;[X

1181 -- 队花的烦恼

队花的烦恼 Time Limit:1000MS  Memory Limit:65536K Total Submit:50 Accepted:41 Description ACM队的队花C小+经常抱怨:“C语言中的格式输出中有十六、十、八进制输出,然而却没有二进制输出,哎,真遗憾!谁能帮我写一个程序实现输入一个十进制数n,输出它的二进制数呀?” Input 输入有多个数据,数据以EO

C语言的格式符

一、格式符含义 1、d格式符:按十进制格式输出。 %d         输出数字长度为变量数值的实际长度 %md        输出m位(不足补空格,大于m位时按实际长度输出) %ld,%mld  l(小写字母L)表示输出“长整型”数据 %0md,%0mld 0(数字0)表示位数不足m时补0 注:%后面的m(位数控制)、0(位数不足补0)对于其他格式符也适用。     例:(□表

c语言中整数溢出的概念

在编写程序时,如果整数的值太大,超出了所定义的整数类型的范围会怎么样? 下面分别将有符号类型好无符号类型整数设置为最大允许值加略大一些的值,看一看结果是是什么。    //printf函数使用%u说明符显示unsigned  int类型的值 程序段 #include int main(void) {        int   i  =    2147483647;    

 编写程序,将某一个输入的位数不确定的正整数按照标准的三位分节格式

 编写程序,将某一个输入的位数不确定的正整数按照标准的三位分节格式输出  如当用户输入82668634时,程序应该输出82,668,634。  程序运行结果如下: a) 输入:82668634 b) 输出:82,668,634

c语言练习题+答案分享

一、单项选择题(总分 20) 1. (分值:2.0 分)C 语言中,逻辑“真”等价于 A: 大于零的数 B: 大于零的整数 C: 非零的数 D: 非零的整数 序号:25 难度:1 考查点:逻辑运算和判断选取控制 2. (分值:2.0 分)当a=5,b=2 时,表达式a= =b 的值为 A: 2 B: 1 C: 0 D: 5 序号:428 难度:

C语言中%d,%s,%x,%f,%.100f,%的意思

格式说明由“%”和格式字符组成,如%d%f等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的。  格式字符有d,o,x,u,c,s,f,e,g等。  如 %d整型输出,%ld长整型输出, %o以八进制数形式输出整数, %x以十六进制数形式输出整数, %u以十进制数输出unsigned型数据(无符号数)。注意:%d与%u有无符号的数值范围,也就是极限的值,不然

【转】printf(&quot;%f/n&quot;,5)的输出结果为什么是0.000000

1,之所以没输出5,这是C语言设计的原因。 2,之所以输出0,这是计算机体系结构的问题。 具体来说: printf函数不会进行任何类型转换,它只是从内存中读出你所提供的元素的值(按照%d,%f等控制字符提示的格式)。 C语言设计中,int类型一般是32bit或者16bit,而float一般是64bit,并且有可能使用科学计数保存。这点就和huhugo88所 说一样,5在内存中为00000000,00000101。而且5一般都在静态区,程序的静态存储区默认是0,那么当用%f来读时,就

C语言,数的表示(整数)

编写test.c #include int main() {     long int a,b;     printf("sizeof int is %lu, sizeof long int is %lu\n", sizeof(int), sizeof(long int));    // the size of long int in 64bit machine is 8byt

c语言 求两个整数的最大公约数

公约数,最大公约数,辗转相除算法,c语言 徐权

为什么printf("%f\n",5)输出0.000000

int xx[2];          int *pp1=xx; *pp1=5; //*(pp1+1)=0; double *pp=reinterpret_cast(xx); cout cout printf("同一块内存区域double 输出:%f\n",*pp); printf("同一块内存区域int    输出:%f\n",xx[0]); cout cout<<pp<<"

c语言中整数赋值和字符赋值的一些问题

int i=289 char c='a'; c=i;这个问题,因为char是一个8位的存贮结构,你把一个16位的int的结构赋值给了它,结果只能是把高位的丢掉,所以i被减了256以后赋值给了c,即低位部分赋值给了c你在c='a'时,c存的是97但你后来把i也就是289给了c,所以值溢出了,(为什么这里i被剪掉的是256呢,这个256是怎么算出来的?) 补充:289是10进制 转换到8进制是000

为什么C语言中的整型取值范围是--32768~32767

整型的宽度是一个字,也就是2个字节,16个二进制位,最高一位二进制位用来表示符号(正或负),那么剩下的15位来表示数值。 01111111 11111111是32767,最大的正整数 00000000 00000001是1 00000000 00000000是0 11111111 11111111是-1(不是-32767) 10000000 00000001是-32767(不是-1) 10000

c语言中输入输出格式集合

1.转换说明符     %a(%A)     浮点数、十六进制数字和p-(P-)记数法(C99)     %c             字符     %d             有符号十进制整数     %f              浮点数(包括float和doulbe)     %e(%E)     浮点数指数输出[e-(E-)记数法]     %g(%G)     浮点数不显无

C语言关于整数和浮点数的输出

int main(){ printf("%d\n",8/5); printf("%.1f\n",8.0/5.0); printf("%.1f\n",8/5); printf("%d"8.0/5.0); return 0;} c语言中整数运算与浮点数运算的比较。下面四条打印语句输出的分别为:1;1.6;0.0;随机数。 之所以会出现上述几种结果是因为整数/整数=整数,

C语言中常量后缀,u或U,l或L,f或F问题

小白在学习过程中有时会在程序中看到0u或是0ul等常量有后缀的情况,如果没接触到C语言常量后缀的话可能就有点疑惑~ 其中的u为unsigned,l为long,f为float           C语言中常量的默情况:整形默认为有符号int;浮点型默认为double;如果整形常量大小超出int,默认自然就为long int;如果需要无符号整形常量的话就可以在常量后面加u或是U,如0u或是0U,

C语言中的整数(short,int,long)

整数是编程中常用的一种数据,C语言中有三种整数类型,分别为 short、int 和 long。int 称为整型,short 称为短整型,long 称为长整型,它们的长度(所占字节数)关系为: short 它们具体占用几个字节C语言并没有规定,C语言只做了宽泛的限制: short 至少占用2个字节。int 建议为一个机器字长。32位环境下机器字长为4字节,64位环境下机器字长为8字节

C语言纠结的四舍五入问题

关于C语言中的四舍五入,本来不是什么大问题,但是吃过亏后,就发现这么个小问题也能整得我痛苦不已。 在C98标准中,标准C函数库好像是没有关于四舍五入的函数的,到了C99标准才出现了ceil(),floor(),nearbyint(),round()之类丰富的取整函数。现在大家使用的gcc都是C99标准了,而Windows下的VC(包括VS2008)还是C98标准,所以你需要遵从严格的”三从四

C语言中int类型数的表示范围及形式

-2^15~(2^15-1)  计算机中数字是以补码存储的  主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补  码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。  在C中,用高位置1来表示负数,int型占两个字节共16位,32768的二进制是10000000,00000000,高位为1,系统会认为是 负数,所以32768需要

在C语言中除法运算为什么没有小数部分?

在C语言中除法运算为什么没有小数部分?  #include   #include   main()  { int x;  float y;  printf("Enter x:");  scanf("%d",&x);  y=fabs((5*x+1)/(x*x+1));  printf("y is %f\n",y);  } 最佳答案除法运算符" / ",如果是两个整数相除结果为

c语言编程中如何判断一个数是否为整数

代码如下: #include int main(void) { double x; scanf("%f",&x); if((int)x==x) printf("%f是整数",x); }

C语言-----如何用C语言判断一个数是不是整数

如果用实型变量x接收一个数或通过计算得到一个数后要知道它是不是整数,没有很好的办法.因为实数在计算机中不能准确的存储,所以不能直接判断两个实型量是否相等,(实型和整形是不能直接比较的,要做一步类型转换才能比较)首先要明确能允许的误差是多少.比如,一般情况当误差的绝对值小于10-8时我们可以认为两个实数是相等的. 第一种方法: #include #include flo

C语言整型数据(整数)

整型数据即整数。 整型数据的分类 整型数据的一般分类如下: 基本型:类型说明符为int,在内存中占2个字节。 短整型:类型说明符为short int或short。所占字节和取值范围均与基本型相同。 长整型:类型说明符为long int或long,在内存中占4个字节。 无符号型:类型说明符为unsigned。 无符号型又可与上述三种类型匹配而构成: 无符号基本型:类型说明符为unsig

C语言中的基本数据类型

IOS学写字 本文目录 一、变量二、类型修饰符三、不同编译器环境下基本数据类型的存储长度 说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略 C语言有丰富的数据类型,因此它很适合用来编写数据库,如DB2、Oracle都是C语言写的。 C语言的数据类型大致可以分为下

PAT 乙等 1024 科学记数法 C语言

1024. 科学计数法 (20) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位,该数字及其指数部分的正负号即使对正数也必定明确给出。 现以科学计数法的格式给出实数A,请编写程序按普通数字表示法输出A,并保证所有有效位都被保留。 输入格式: 每个

C语言中整数的三种不同表达形式

整数,C语言中有三种不同的表达形式: 1、十进制整数:如123,-789,0 2、八进制整数:在写法上要加前缀“0”。如012,010 3、十六进制整数:前缀加“0x”,如0x36 10,010,0x10十进制数分别是10,8,16. 八进制数这样的,01,02,03,04,05,06,07,010,011…… 对应10进制数的:1, 2, 3, 4, 5, 6, 7,

C语言中的int类型的范围是由什么决定的

从C语言中int类型讲起,引入了字长的概念,描述了计算机体系结构中与字长相关的方方面面。

c语言中的inf和nan

计算calcDistanceToHead的距离时,发现有输出-nan的打印。跟踪打印数据后,发现有sqrt数据异常的嫌疑。 首先,解释一下它们的意思: INF表示“无穷大”,是infinite的缩写。 NAN表示“无效数字”,是Not a number的缩写。其次,这两个是值会在浮点运算结果未定义或者无法表示的时候出现 比如,float a =0.0f; printf("\n 1/a = %f\

c语言格式字符串 % lf 和 %f

TREOCN-ChinaUnix博客 http://blog.chinaunix.net/uid-20579719-id-1624101.html #define intdex long typedef struct XYZType{   double Loc[3];   void * ref; }XYZType; typedef struct PList{  

C语言中补码的整数运算特性

前言本篇博客以“SSD6-Exercise2-Data Lab: Manipulating Bits”为例,分析在对C语言中的整数采用补码(two’s-complement)编码的机器上,其整数运算的特性。

C语言中的小数如果用int形式输出

如果想进行四舍五入 而是直接读取该浮点数所在内存 并没有对浮点数进行强制转换 在调用printf时 1.6); return 0;}会得到如下运行结果:-17179869180x9999999APress any key to continue由此可见 |||如果执行如下程序:int main(int argc 得到的结果应该是1或者2 我现在没办法给你试试 就是0.6 1.6

c语言中小数取整

C语言有以下几种取整方法: 1、直接赋值给整数变量。如: int i = 2.5; 或 i = (int) 2.5; 这种方法采用的是舍去小数部分 2、C/C++中的整数除法运算符“/”本身就有取整功能(int / int),但是整数除法对负数的取整结果和使用的C编译器有关。 3、floor函数。floor(x)返回的是小于或等于x的最大整数。如: floor(2.5) = 2

C语言输出格式总结

C语言输出格式总结 2008年11月01日 星期六 04:23 P.M. 1 一般格式    printf(格式控制,输出表列)    例如:printf("i=%d,ch=%c\n",i,ch);    说明:    (1)“格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息:          ①格式说明:由“%”和格式字符组成

C语言的整型常量与实型常量

一、整型常量

%f和%lf的区别

%lf和%f 在scanf函数和printf函数看来是不一样的      首先printf无论是%f还是%lf没有区别,因为当printf函数当遇到float类型时会自动转化为double,从c语言标准来说printf并没有%lf的定义,虽然大多数编译器都能接受,但在做题时printf最好用%f,否则可能出现一些莫名其妙的错误;     对于scanf来说double就应该用%lf float

关于C语言中不同类型的输出格式以及浮点数除法格式的显示详解

一,C语言中的输出函数及常见易错类型格式总结:

c语言中的分支结构

ios培训——我的c语言笔记,期待与您交流!现实生活中我们经常需要根据不同的条件做出不同的选择。程序设计中也需要根据条件来选择不同的程序进行处理,这称之为分支结构。C语言中控制分支结构的主要是if语句和switch语句。首先说说if语句:if语句的单分支结构形式:if(条件 e) { 语句 s; }。当条件e满足时,则执行花括号中的语句s。注(当花括号中只是单语句,即只有一条语句时,花括号可以省略

C语言中的数据类型&常量

C语言中的数据类型 1.整型:用于准确地表示整数,根据表示范围的不同分为以下三种: 短整型(short) 整型(int) 2.实型(浮点型):用于标识实数(小数)根据范围和精度不同分为以下两种: 单精度浮点数(float) 双精度浮点数(double) 注意:float只能够保证7位数字是有效的!!! 3.字符型:用来描述单个字符,char 如'a','b'

C语言中 \r, \n, \b 的区别

1.  \r\n 和 \n 区别 (来源:百度知道) \r是回车符,\n是换行符 计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。 于是,研制人员想了个办法解决这个问题,就是在每行后面加

c语言:判断数字整数为几位数

#include int main() { long long a; int count=0; printf("请输入一个整数:"); scanf("%lld",&a); while(a!=0) { a/=10; count++; } printf("输入的数字是%d位数。",

【C语言】整数,浮点数在内存中是如何存储的

整数在内存中的存储 整型数就是通常使用的整数,分为无符号整数和带符号整数两大类。

相关热词 c#设计思想 c#正则表达式 转换 c#form复制 c#写web c# 柱形图 c# wcf 服务库 c#应用程序管理器 c#数组如何赋值给数组 c#序列化应用目的博客园 c# 设置当前标注样式
立即提问