d ,0 3 输出结果的原因是什么

发布于 三农 2024-08-04
22个回答
  1. 匿名用户2024-01-31

    printf("%d",;

    输出的结果由编译器确定。

    c 该语言的语法不严谨。 按理说,只有整数可以以整数格式输出,所以如果你写它并要求它以整数格式输出浮点数,编译器不会报告错误,它不会将浮点数转换为整数然后输出它,而是以自己的方式输出结果。

    你如何得到这个结果并不容易猜到。

    可以想象,编译器使用 IEEE 754 二进制标准,浮点数表示为:

    符号位(符号位)+指数偏差指数+处理后有效尾数。

    您可以想象编译器以 32 位单精度数字或 64 位双精度数字的形式进行处理。

    好吧,有效尾数是 23 位或 52 位。

    处理后的指数为 8 位或 11 位。

    如果你猜对了,它可能是 3fd33333

    现在我们要猜测整数的符号,然后我们要猜测它如何将 3fd33333 转换为整数......

    以下程序使用联合声明为您分析其存储和打印:

    #include

    #include

    uniondouble x;

    unsigned char a[8];

    int ii;

    x;void main()

    int i;

    浮点数存款。

    for (i=0;i<8;i++)

    printf("%x ",;十六进制内存黑客。

    printf("**********===");

    printf("%d",;按 %d 输出,就是这样。

  2. 匿名用户2024-01-30

    这取决于内存中特定二进制的表示方式,然后更改为十进制。

    这应该是一个大整数。

  3. 匿名用户2024-01-29

    在函数 s[3]=4, a=4 中,当 a=s[3] 时,while 循环跳转,返回值 j 为 3,输出为 3

  4. 匿名用户2024-01-28

    输出时,它将响应“5||0“,0 为 false,non-0 为 true。

    对于“||如果值为 true,则结果为 true,并且 true 由 1 表示,则输出结果为 1。

  5. 匿名用户2024-01-27

    printf("%d",5||0);输出为表达式 5||0,这是一个逻辑表达式,除 0 以外的任何值均为 true。

    5||0 =》 true||转换为数值输出时,false 为 true,true 为 1

  6. 匿名用户2024-01-26

    5||0

    逻辑运算,结果为非零且为真。 一些编译器将 1 定义为真值。 数值输出为 1

  7. 匿名用户2024-01-25

    5 ||0 为 true。 实际值为 1

  8. 匿名用户2024-01-24

    1 3 默认的int类型结果为0,强制转换后仍为0,但为float类型,默认为float类型。

  9. 匿名用户2024-01-23

    这个,你是初学者吗? 1 3 是一个整数,即 =0,所以为什么小数点后有 6 个零是因为 %f 默认输出 6 作为有效的十进制。 它是做除法,其内部类型定义为浮点型,并且有小数位。

  10. 匿名用户2024-01-22

    注意输出类型,f输出是浮点型,1 3都是整数,隐式转换为零,所以输出,这里你明白了,你自然就明白了。

  11. 匿名用户2024-01-21

    这个,你是初学者吗? 1 3 是整数,即 =0,主要是因为 1 是整数,但精度是单精度。

  12. 匿名用户2024-01-20

    例如,1 3 = 整数的整数部分是 0,所以 1 3=04 3 = 整个部分是 1,所以 4 3=1,浮点数和 double 是小数部分的结果。

  13. 匿名用户2024-01-19

    printf("%f",1 3)是双精度的结果,简单舍入。如 printf("%f", 4 3)输出为 while。

    printf("%f",;是正常计算。

  14. 匿名用户2024-01-18

    输出1,赋值语句的返回值为赋值,注意与==的区别。 所以 (a=3)&&b=-3) -3&&-3---true&&-true(非 0 为 true) --true---1(%d 格式,因此转换为数字 1,如果为 false,则为 0)。

  15. 匿名用户2024-01-17

    你写错了,把==写成=,=是赋值,==是判断,所以(a=3)&&b=-3)就是赋值3,赋值-3给b赋值,赋值后,因为a和b不是0,所以表达式的结果是1,1&&1的结果就是1, 所以输出是 1

  16. 匿名用户2024-01-16

    C语言正在工作! (从逻辑上讲)不是,所有非 0 值都被视为 true,而 0 被视为 false。 当 true 和 false 以 %d 格式输出时,它们分别为 1 和 0。

    所以!3=0,而! 0=1

  17. 匿名用户2024-01-15

    1 个全 printf("%d",(int)( 将获得 13。

    或者 printf("%lf",浮点计数。

  18. 匿名用户2024-01-14

    的值为 double,double 输出为 %d 格式,计算结果相当复杂。

  19. 匿名用户2024-01-13

    您使用的 %d 输出字符是输出 ASCII 代码,空 ASCII 代码是 0。

  20. 匿名用户2024-01-12

    0为NUL,对应的ASCII码为0;

  21. 匿名用户2024-01-11

    printf("\0");输出 null 是直接输出,不会转换为 ASCII 代码。

    printf("%d",'\0');输出 0 的 ASCII 代码为 0

  22. 匿名用户2024-01-10

    您必须看到输出是 printf("%d", *(p+4)),这是十进制输出的形式。

相关回答
18个回答2024-08-04

以人为例。 1. 输入。

根据您输入的内容,您可以扩展的内容也会有所不同。 >>>More

11个回答2024-08-04

答案是:11 和 3

当全局变量和局部变量同名时,请在全局变量前添加 : 以区分它们。 >>>More

17个回答2024-08-04

大多数沉迷于互联网的青少年在达到一定年龄时都会发生变化。 它分为两类,第一类是晚变,错过了一个好的学习时间,导致无法在社会上站稳脚跟,第二类是早起的改变,那种玩腻了网络游戏,还能在社会上找到一份正经工作。 相信很多90后的孩子比较喜欢上网或者玩游戏,这是不可逆的,除了那些爱学习的人,满足好奇心是一回事,最重要的是他们都喜欢在虚拟世界里满足自己的虚荣心,充值和消费也成为这个年龄段的必备消耗品。

6个回答2024-08-04

列日战役的结果是悲惨的:整个战斗从1814年8月3日持续到8月16日,德军出动了炮兵、步兵甚至空军,动用了当时超大口径榴弹炮、机枪、飞艇等最先进的火力**,尽管比利时军队凭借要塞炮台等顽强抵抗, 但列日的要塞群最终失守,莱曼的指挥官也在防御战中负伤,昏迷被俘。8月17日上午,德国。 >>>More

33个回答2024-08-04

不会的。 如果你真的爱她,她也爱你,你就应该为你的爱而战。 不想失去一个朋友,只能放弃这份爱。 但是,我相信真爱还是要争取的,哪怕是被打败了。