首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言基礎

C語言整數類型short、int、long長度、進制與輸出格式全解析

     編輯:C 語言基礎

三大整數類型

int 基本整型;short int/short 短整型(較小);long int/long 長整型(較大)。int 可省略。

short a = 10;
long m = 102023;

長度規定與平台差異

C 標準僅限制:

  • short ≥ 2 字節
  • int 建議為機器字長(32位=4字節,64位=8字節)
  • short ≤ int ≤ long

常見平台長度表(字節)

環境shortintlong
16位224
32位 Win/Linux/OS X244
Win64244
Unix-like 64位248

long 在 64 位平台差異最大,移植性需注意。

sizeof 獲取類型長度

#include <stdio.h>
int main() {
    short a = 10; int b = 100; long c = 1000; char d = 'X';
    int a_len = sizeof a;          // 變量可省略 ()
    int b_len = sizeof(int);       // 類型必須帶 ()
    printf("a=%d, b=%d, c=%d, d=%d\n", a_len, b_len, sizeof(c), sizeof(char));
    return 0;
}

Win7 輸出:
a=2, b=4, c=4, d=1

sizeof 是運算符非函數,故可不帶括號。

不同進制整數字面量

  • 八進制:0~7,以 0 開頭。015 (十進制13)、-0101 (-65)。
  • 十六進制:0~9、A~F/a~f,以 0x/0X 開頭。0X2A (42)、0xffff (65535)。
  • 十進制:無前綴。
  • C 無二進制字面量(無專用前綴)。

printf 整數輸出格式控制符

類型十進制八進制十六進制
short%hd%ho%hx/%hX
int%d%o%x/%X
long%ld%lo%lx/%lX

加 # 輸出前綴:%#o → 0270、%#x → 0x2f、%#X → 0X2F。十進制無前綴,%d 與 %#d 同。

示例

int a = 100, b = 0270, c = 0X2F;
printf("a(d)=%d, d(#d)=%#d\n", a, a);
printf("a(o)=%o, d(#o)=%#o\n", b, b);
printf("c(x)=%x, c(#x)=%#x, c(X)=%X, c(#X)=%#X\n", c, c, c, c);

輸出:
a(d)=100, d(#d)=100
a(o)=270, d(#o)=0270
c(x)=2f, c(#x)=0x2f, c(X)=2F, c(#X)=0X2F

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved