变量转换出现的问题?
程序代码:
#include <stdio.h> #include <stdlib.h> #define blur "authentic imitation !" int main() { float n1=3.0; double n2=3.0; long n3=2000000000; long n4=1234567890; printf("%.1e %.1e %.1e %.1e\n",n1,n2,n3,n4); printf("%ld %ld\n",n3,n4); printf("%ld %ld %ld %ld",n1,n2,n3,n4); return 0; }第三行输出我有点不明白,请帮我解答一下。
解析上说计算机是根据变量类型存储,而读取则是根据转换说明符来 的,
那既然这样 数字3 的二进制代码则为0000 0011,对吗?
第一哥%ld应该是读取前面部分0000,第二个则是读取后面的0011,那这样的话显示应该是3啊,为什么会是那么大的数字啊,请高手帮我解决一下。