C语言菜鸟2个问题,送分!!!送分!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

来源:百度知道 编辑:UC知道 时间:2024/06/20 04:40:52
问题一(重点)

float 53.65 转化成 char 怎么转???书上习题答案上写的char值是'5'?
有人说float转换为int后舍去小数位为53,而"5"的ASCII码正好是53,所以转化为char后的值是"5";
float 转换成 char 在内存中二进制到底是怎么转换的???
如果float是11.01或者999.99呢,强制转换成char 2进制是多少???第1个带小数也没益出,第2个数舍去小数也益出了,char只有1个字节是吧,这个是只取2进制中间那部分吧?还要不超过128?具体转换的规则??

问题二(讲懂即可)

关于printf的问题,书上的原话:
"printf (参数1,参数2...参数n)
printf函数的功能是将参数2-参数n按参数1给定的格式输出"

这句话理解不是很懂,也没例子,能举个简单的例子说明下此功能么???

问题二:是说的这个意思
(1)printf(“%d,%d”,i,f);其中%d和%d是格式说明,i和f是输出表列。
另外printf(“%d” “%d”,i,f);和上面的用法是一样的,两个%d是格式说明,i和f是输出表列
问题1:
首先说明,char中存放的是字符的ASCII码值.
浮点数赋给字符型时,先把浮点数变成整型在赋值给字符型.
若该浮点数的整数部分没有超过字符型的最大值(对字符型来说没有溢出),则相当于字符中存放了该整数.用%c输出时是输出该整数对应的字符,如53(ASCII值)对应字符'5'.

另外
不同的系统对char的默认值是不同的.有的系统默认char是signed char,有的是unsigned char.
即 char x;定义x时,可能是signed char x;也可能是unsigned char x.
对与标准C来说,char型中最好存放0-127(IBM机上可以到255)这样才会得到预期的字符,否则将会输出乱码.
对于各种类型之间的转换,不会的可以找我(qq826369906).我们一起探讨.

问题二:参数1是格式化字符串,指时后面带几个参数,每个参数究竟是什么。
比如:printf("%d %s %c", i, str, character);
"%d %s %c"指时后面还3个参数, 第一个参数是整形,第二个是字符串型,第三个是字符型。
问题一:float a = 53.65, 当进行(char)a时,其实编译器自动把该句转换为ftol(a)的函数调用。并不是直接取最低地址的内存。53.65的编码从低到高为:9a 99 56 42,清楚了吧?所以“有人说float转换为int后舍去小数位为53”这句话基本正确,确切应该说“float转换为int为53”。
如果float是11.01或者999.99,11.01转换完就是11,999.99转换完就是999%256=231。char是只有一个字节,但是做转换时是考虑整个取值范围的,并不考虑正负数,所以是不超过256。转换规则:x为任意整数,转换成ch