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
單引號\’
雙引號\”
反斜槓\
百分號%%