簡體   English   中英

為什么printf(“ - %d”,025); 打印-21? (C)

[英]why does printf(“-%d”,025); print -21? (C)

這可能非常簡單,但我想知道為什么如果你有這個代碼它打印出-21?

    #include <stdio.h>

    main() {
       printf("-%d",025);
    }

025是八進制== 2 * 8 + 5 == 21十進制

在整數格式字符串占位符前面有一個減號,因此它打印-21

0開頭的整數文字是八進制(基數為8)。 所以0252*8 + 5 = 21

如果您使用帶語法突出顯示的編輯器,它可能會顯示此信息。

瑣事:因為這個原因, 0本身實際上是八進制,而不是十進制!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM