1. 程式人生 > >C語言中的基本型別

C語言中的基本型別

1、整形

int a = 10 ; 十進位制,格式化輸出:%i
int b = 0743;八進位制,格式化輸出:%o %#o(輸出前導符號0)
int c = 0x7f3d;十六進位制,格式化輸出:%x %#x(輸出前導符號0x)

2、浮點型

float f = 1.234;格式化輸出:%f(小數部分預設長度為6,不夠用0填補)
double d = 1.3e-11;格式化輸出:%e(按照科學技術法輸出)

  • 在Obj-C中,編譯器將把單精度浮點數作為雙精度來處理;除非定義為float f=1.23f,則為單精度浮點數。
  • 格式化輸出:%g,將省略到浮點型數字的多餘0。

3、long

long int a = 10L;   格式化輸出:%li %lo %lx,分別使用十進位制,八進位制,十六進位制格式輸出。
long long int b = 10LL; 格式化輸出:%lli %llo %llx,分別使用十進位制,八進位制,十六進位制格式輸出。
long double d = 1.234e+7L; 格式化輸出:%Lf %Le %Lg

4、無符號

unsigned int a = 10U, b = 11u;
unsigned long int a = 19UL, b = 119ul;
//當一個int的數值太大而無法存入int,並且沒有使用字尾時,則編譯器當作是無符號的整數來處理。
//當一個int的數值太小而無法存入unsigned int,並且沒有使用字尾時,則編譯器當作是long int來處理。

基本資料型別圖片

Type Constant Examples NSLog chars
char ’a’, ’\n’ %c
short int %hi, %hx, %ho
unsigned short int %hu, %hx, %ho
int 12, -97, 0xFFE0, 0177 %i, %x, %o
unsigned int 12u, 100U, 0XFFu %u, %x, %o
long int 12L, -2001, 0xffffL %li, %lx, %lo
unsigned long int 12UL, 100ul, 0xffeeUL %lu, %lx, %lo
long long int 0xe5e5e5e5LL, 500ll %lli, %llx, &llo
unsigned long long int 12ull, 0xffeeULL %llu, %llx, %llo
float 12.34f, 3.1e-5f, %f, %e, %g, %a
0x1.5p10, 0x1P-1
double 12.34, 3.1e-5, 0x.1p3 %f, %e, %g, %a
long double 12.341, 3.1e-5l %Lf, %Le, %Lg
id nil %p

基本資料型別

基本資料型別

有符號短整型 %hd
int i1 = 32767;//2^15-1
有符號的長整型 %ld
long int i3 = 2147483648;//2^31-1
有符號的長長整型 %lld
long long int i4 = 4567890123;//2^31-1
無符號的短整型%hu
unsigned short int i6 = 65535;//2^16-1
無符號的整型 %u
unsigned int i5 = 4294967295;//2^32-1
無符號的長整型%lu
unsigned long int i7 = 1234567890123;//2^32-1
無符號的長長整型 %llu
unsigned long long int i8 = 456789012345;//2^64-1

基本型別所佔位元組

字元型1位元組
短整型2位元組
整型4位元組和浮點型4位元組
其他整型和雙精度8位元組
長雙精度型16位元組

實型變數:分為單精度(float型)、雙精度(double型)和長雙精度(long double型)三類。

  • 單精度:4位元組(32位),範圍為3.4E-38~3.4E+38,只能提供七位有效數字。
  • 雙精度:8 位元組(64位),範圍為1.7E-308~1.7E+308,可提供16位有效數字。
  • 長雙精度:16位元組(128位),可提供18-19位有效數字。

整數型別(int、long)使用常見問題彙總

  • 超出範圍
  • 兩個整數相除,結果仍是整數,小數會被捨棄

三種不同的進位制給整數賦值

int x = 100;intf(“%d\n”, x);//十進位制
int x = 0100;printf(“%#o\n”, x);//八進位制//輸出結果前加0
int x = 0x100;printf(“%#x\n”, x);//十六進位制//輸出結果前加0x

字元型char %c

char c1 = 127;//2^7-1
char c2 = ”;//單引號中必須有一個字元

實現大小寫字母之間的轉換

a’-‘A’=‘z’-‘Z’= 97 - 65 = 32

轉義符

換行\n
回車\r
製表符\t
單引號\’
雙引號\”
反斜槓\
百分號%%