回覆列表
  • 1 # 蘋果愛娛樂說八卦

    這是一種過時的說法了,只有在比較古老的書上才可以看到。對於有符號整型,也就是int型,是和編譯器的字長有關的,只有在16位編譯器上,int型別佔2個位元組,其表示範圍才是-32768~32767; 對於32位和64位編譯器,int型別佔4位元組,表示範圍為-2147483648~2147483647。以16位編譯器為例,介紹其原理,對於32位和64位類似。int為有符號整型數,在16位編譯器上佔2位元組16位。對於有符號數,計算機中表達時,最高位約定為符號位,當符號位為0時為正數,符號位為1時為負數。所以真正表達值的部分是剩餘的15位,這15位的範圍就是二進位制的000 0000 0000 0000到111 1111 1111 1111。轉換成十進位制也就是0~32767。所以,正數的表示範圍就是1~32767. 其中有一個特殊的值,就是0值,對於符號位1和0的時候,值都是0,用兩個形式表示同一個數無疑是浪費的,符號位為1時的全0,就用來表達-32768了,這也是負數表示的範圍比正數多1的原因。綜上,對於任意位的,無論是8位,16位,32位甚至64位的整數型別表示範圍的計算公式為:如總位數為n位,那麼有符號數的範圍為-2^(n-1) ~ 2^(n-1)-1無符號數的表示範圍為:0~2^n-1在這個公式中,^表示乘方。2^n就是2的n次冪。

  • 2 # 藍風24

    C語言中,控制printf函式輸出格式的是格式字元,printf沒有直接打出2進位制數的格式符,直接打出16進位制的格式符是x格式符,即%x。

    printf函式中輸出的格式為printf("", ),格式化字串由格式控制、和輸出表列兩部分組成,其中格式控制包含格式宣告和普通字元。

    格式宣告由“%”和格式字元組成,如%d、%f等。它的作用是將輸出的資料型別轉換為指定的格式然後輸出。普通字元是需要在輸出時原樣輸出的字元。

    擴充套件資料

    C語言printf函式格式字元:

    1、%d,按整型資料的實際長度輸出。

    2、%md,m為指定的輸出欄位的寬度。

    3、%ld,輸出長整型資料。

    4、o格式符,以八進位制整型式輸出整數。

    5、x格式符,以十六進位制數形式輸出整數。

    6、u格式符,用來輸出unsigned型資料,即無符號數,以十進位制形式輸出。

    7、c格式符,用來輸出一個字元。

    8、s格式符,用來輸出一個字串。

    9、f格式符,用來輸出實數(包括單雙精度),以小數形式輸出。

    10、e格式符,以指數形式輸出實數。

    11、g格式符,用來輸出實數,它根據數值的大小,自動選f格式或e格式(選擇輸出是佔寬度較小的一種),且不輸出無意義的零。

    12、p格式符,用於變數地址的輸出。

    13、%[scanfset]:

    scanfset 有兩種形式:一種是以非 “^” 字元開頭的 scanset , 表示在讀入字串時將匹配所有在 scanfset 中出現的字元,遇到非scanfset 中的字元時輸入就結束;

    另外一種形式是以 “^” 字元開頭的scanfset ,表示在讀入字串時將匹配所有不在scanfset 中出現的字元,遇到scanfset 中的字元輸入就結束。

  • 中秋節和大豐收的關聯?
  • 職場女性如何打扮更有氣質?