由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - C的问题,困惑中
相关主题
c++ 中如何把str转换为float?一个读用户输入的小问题
C的argc问题定义的struct数组很大时,为什么会出现奇怪的大数字?
little endian vs big endianA helloworld OpenMP question?
请教C的类型转换问题tree data conversion
请教怎么用#define实现如下的功能请教一道题 (转载)
c++ template中如何判断类型问个简单的c程序
看下这个小程序入门问题,perl里s@\_@@g 是什么意思?
请教一道c/c++题求助 怎么编辑 多个 .c files(比如a.c, b.c) 和一个.h file(ab (转载)
相关话题的讨论汇总
话题: printf话题: float话题: 输出话题: int话题: 2413823420
进入Programming版参与讨论
1 (共1页)
e********d
发帖数: 1202
1
#include
main(int agrc, char * argv[]){
int a = 4;
printf("%f\n",a);
printf("%u\n",a);
printf("%f,%u\n",a,a);
printf("%d,%f,%u\n",a,a,a);
printf("%d,%f,%u,%u\n",a,a,a,a);
printf("%f,%u\n",(float)a,(unsigned)a);
}
gcc, mac osx, 输出如下,
0.000000
4
0.000000,2413823420
4,0.000000,0
4,0.000000,4,0
4.000000,4
请教中间几行输出为什么是这样.
P********e
发帖数: 2610
2
%f读4,如果是按照float格式读,是接近0的一个数 e - 128?之类的
你可以把4 cast 到float,然后再看byte representation. exp的位有一个127的offset
%u读a, 我比较奇怪为什么不是4,解释不了
而且,倒数第二行,同样%u%u,第一次是4,第二次0

#include
main(int agrc, char * argv[]){
int a = 4;
printf("%f\n",a);
printf("%u\n",a);
printf("%f,%u\n",a,a);
printf("%d,%f,%u\n",a,a,a);
printf("%d,%f,%u,%u\n",a,a,a,a);
printf("%f,%u\n",(float)a,(unsigned)a);
}
gcc, mac osx, 输出如下,
0.000000
4
0.000000,2413823420
4,0.000000,0
4,0.000000,4,0
4.000000,4
请教中间几行输出为什么是这样.

【在 e********d 的大作中提到】
: #include
: main(int agrc, char * argv[]){
: int a = 4;
: printf("%f\n",a);
: printf("%u\n",a);
: printf("%f,%u\n",a,a);
: printf("%d,%f,%u\n",a,a,a);
: printf("%d,%f,%u,%u\n",a,a,a,a);
: printf("%f,%u\n",(float)a,(unsigned)a);
: }

t****t
发帖数: 6806
3
printf family里, %f代表double
请把上面这句话重复100遍啊100遍
为什么搞不清这个的人如此之多...

offset

【在 P********e 的大作中提到】
: %f读4,如果是按照float格式读,是接近0的一个数 e - 128?之类的
: 你可以把4 cast 到float,然后再看byte representation. exp的位有一个127的offset
: %u读a, 我比较奇怪为什么不是4,解释不了
: 而且,倒数第二行,同样%u%u,第一次是4,第二次0
:
: #include
: main(int agrc, char * argv[]){
: int a = 4;
: printf("%f\n",a);
: printf("%u\n",a);

M*****a
发帖数: 2054
4
我搞不清。。。

【在 t****t 的大作中提到】
: printf family里, %f代表double
: 请把上面这句话重复100遍啊100遍
: 为什么搞不清这个的人如此之多...
:
: offset

P********e
发帖数: 2610
5
当然不是
%f可以代表float and double, 你摆脱一下

【在 t****t 的大作中提到】
: printf family里, %f代表double
: 请把上面这句话重复100遍啊100遍
: 为什么搞不清这个的人如此之多...
:
: offset

t****t
发帖数: 6806
6
请阅读C FAQ 12.9, 再想想为什么我说%f代表double, 再想想为什么%u找不到4
我就不问那个问过好多遍的问题了.

【在 P********e 的大作中提到】
: 当然不是
: %f可以代表float and double, 你摆脱一下

p****s
发帖数: 32405
7
大人, 我替您打个下手:
http://c-faq.com/stdio/scanfvsprintf.html

【在 t****t 的大作中提到】
: 请阅读C FAQ 12.9, 再想想为什么我说%f代表double, 再想想为什么%u找不到4
: 我就不问那个问过好多遍的问题了.

1 (共1页)
进入Programming版参与讨论
相关主题
求助 怎么编辑 多个 .c files(比如a.c, b.c) 和一个.h file(ab (转载)请教怎么用#define实现如下的功能
Array in Cc++ template中如何判断类型
奇怪的问题:关于一个简单的malloc()小程序 (转载)看下这个小程序
这个C++程序为什么不能运行请教一道c/c++题
c++ 中如何把str转换为float?一个读用户输入的小问题
C的argc问题定义的struct数组很大时,为什么会出现奇怪的大数字?
little endian vs big endianA helloworld OpenMP question?
请教C的类型转换问题tree data conversion
相关话题的讨论汇总
话题: printf话题: float话题: 输出话题: int话题: 2413823420