一、進位 1.顯示八進位和十六進位 (1)%d 用於顯示十進位數; (2)%o 用於顯示八進位數; (3)%x 用於顯示十六進位數。 (4)%u 用於顯示unsigned類型整數。 另外如果要是顯示各進位的首碼0、0x和0X,就必須使用%#o、%#x和%#X /* base.c --以十進位、八 ...
一、進位
1.顯示八進位和十六進位
(1)%d 用於顯示十進位數;
(2)%o 用於顯示八進位數;
(3)%x 用於顯示十六進位數。
(4)%u 用於顯示unsigned類型整數。
另外如果要是顯示各進位的首碼0、0x和0X,就必須使用%#o、%#x和%#X
/* base.c --以十進位、八進位、十六進位列印十進位數字100*/ #include<stdio.h> int main(void){ int x = 100; printf("dec = %d;octal = %o;hex = %x\n",x,x,x); printf("dec = %d;octal = %#o;hex = %#x\n",x,x,x); return 0; }
2.C語言還提供了三種附屬關鍵字的修飾基本整數類型:short\long\unsigned
(1)short int類型(或者簡寫為short)占用的存儲空間少(可以類比Java的short)
(2)long int類型(或者簡寫為long),類比Java的long
(3)long long int (或者簡寫為long long),這個比long還大
(4)unsigned int(或者簡寫為unsigned),這個只用於非負值的情況。
這種類型與有符號類型表示的範圍不一樣,例如:16位unsigned int允許的取值範圍是0~65535,而不是-32768~32767,用於表示正負號的位現在表示另一個二進位位現在用於表示另一個二進位位,所以無符號整型能夠表示更大的數。
(5)C90標準中,添加了unsigned long int或unsignedlong和unsigned short int 或unsiged short類型。C99標準又添加了unsigned long long int和unsigned long long。
(6)任何有符號類型前面添加關鍵字signed,可強調使用有符號類型的意圖,例如:short\short int\signed short\signed short int都表示同一種類型。
3.現在個人電腦上最常見的設置就是,long long占64位,long占32,short占16位,int占16/32位(依電腦的自然字長而定)
4.long常量和long long常量
(1)一個數字變大,編譯器會視為不同的類型
int - long int - unsigned long - long long int - unsigned long long
(2)八進位和十六進位也符合上面的規律;
(3)long類型,可以在數字後面加一個字面L(或者小寫l,但是不推薦,因為容易和1弄混),long long類型,可以在數字後面加一個LL,unsigned類型可以在數字後面加一個U,或者LU,或者LLU
(4)八進位和十六進位也同樣適用上面的規則。
5.整數溢出
#include<stdio.h> int main(void) { int i = 2147483647; unsigned int j = 4294967295; printf("%d %d %d\n", i, i + 1, i + 2); printf("%u %u %u\n", j, j + 1, j + 2); getchar(); return 0; }
三、源碼:
D7_3_3bases.c
https://github.com/ruigege66/CPrimerPlus/blob/master/D7_3_3bases.c
D7_toobig.c
https://github.com/ruigege66/CPrimerPlus/blob/master/D7_toobig.c
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關註微信公眾號:傅里葉變換,個人賬號,僅用於技術交流,後臺回覆“禮包”獲取Java大數據學習視頻禮包