程式設計必備知識
資料型別
資料的輸入和儲存。可以分為
A.基本資料型別(四類八種)
(整形: int(4個位元組) 短整型short(2個位元組) 長整形long(8個位元組) 位元組byte (1個位元組8位) ) int:32 位、最常用,-2^31-1~2^31 (21 億)
(浮點型: 單精度浮點數float(4個位元組) 雙精度浮點數double(8個位元組) )
(字元: char(在C語言中佔1位 在java c# 中佔2個位元組 ) char 本質就是個數!二進位制的,顯示的時候,經過“處理”顯示為字元。 )
(布林型別: true 和 false )
B.引用資料型別
(類,介面,陣列)
變數
(變數的本質是記憶體中一段儲存空間)
IntI; i=5;
i是變數,程式向系統申請了一個記憶體單元,在程式執行中,i的值可以改變,但程式結束後,其所佔的空間不是釋放,而是被系統收回許可權。
進位制
補碼
問題:
一個int型別的變數所能儲存的陣列的範圍是多少? -2^31~2^31-1
最小負數的二進位制程式碼是多少?1000 0000 0000 0000 0000 0000 0000 0000
最大正數的二進位制程式碼是多少?0111 1111 1111 1111 1111 1111 1111 1111
已知一個整數的二進位制程式碼求出原始的數字?FFFFFFF5 ---> -11
數字超過最大正數會怎麼樣?例如一個數1位的二進位制是0111 1111(127)+0000 1010(10) = 1000 1001 =》 -119
不同的資料型別相互轉換?char ch = 128 printf("%d",ch) -127 int->char 0000 0000 0000 0000 0000 0000 1000 0000 代表128 那麼這是char只有8個位元組 所有將int左邊多出的位元組省去 就剩1000 0000 就是 -127
原碼:也叫符號 絕對值碼
最高位0表示正 1表示負 ,其餘二進位制位是該數字的絕對值的二進位制位(-5(八位的二進位制數) 表示10000101 因為負號是1,5是0000101)
優點:簡單易懂 缺點:加減運算複雜 存在加減乘除四種運算,增加了CPU的複雜度零的表示不唯一(100000000或者0000000)
在計算機中,從未被使用!
-----------------------------------------
反碼:
反碼執行不便,也沒有在計算機中應用
-----------------------------------------
移碼:
移碼錶示數值平移n位,n稱謂移碼量,移碼主要用於浮點數的階碼的儲存
-----------------------------------------
補碼:(在計算機系統中,數值一律用補碼來表示和儲存。原因在於,使用補碼,可以將符號位和數值域統一處理;同時,加法和減法也可以統一處理。此外,補碼與原碼相互轉換,其運算過程是相同的,不需要額外的硬體電路。)
A已知十進位制求二進位制
求正整數的二進位制
除2取餘,直到商為零,餘數倒序排列
求負整數的二進位制
先求出與該負數相對應的正整數的二進位制程式碼,
然後,將所有位取反末尾加1,不夠位數時,左邊補一
4位元組int-5先求5的二進位制
0000 0000 0000 0000 0000 0000 0000 0101 所有位取反,末尾加1
1111 1111 1111 1111 1111 1111 1111 1011 16進位制:FFFFFFFB
2位元組short int(-3)先求3的二進位制
0000 0000 0000 0011所有位取反,末尾加1
1111 1111 1111 1101 用十六進位制表示: FFFD
求零的二進位制
全是零(100000000000....這表示最小的負數)
B已知二進位制求十進位制
如果首位是0,則表明是正整數,
按普通方法來求
如果首位是1,則表明是負整數,
將所有位取反末尾加1,所得數字就是該負數的絕對值
習題:FFFFFFF5 已知二進位制 求其代表的整數是多少?
1111 1111 1111 1111 1111 1111 1111 0101
由於最高位是1,所以最終是負數,先對其所有取反
0000 0000 0000 0000 0000 0000 0000 1010 末尾加1後
0000 0000 0000 0000 0000 0000 0000 1011 該值為11 所以最終結果:-11
位運算子(現實意義,對資料的操作精確到每一位)
提問 如果想讓一個數的第五位為零 要怎麼操作?
int a ; a = a&1111101111 這樣a的第5位就一定位零 其他位不變。
& ---按位與(&&邏輯與 也叫並且)&& 與&的含義完全不同(短路運算子一般有:&&、||,其原理是:當有多個表示式時,左邊的表示式值可以確定結果時,就不再繼續運算右邊的表示式的值。)而& 1 不具備短路用途
1&1 = 1 1&0 = 0 0&1 = 0 0&0 = 0 5&7 = 5 21&7 = 5 5&1 = 1 5&10 = 0
5->00000101 7->00000111 00000101&00000111 = 000000101
| ---按位或 (||邏輯或 )
1|0 = 1 1|1 = 1 0|1 = 1 0|0 = 0 5|7 = 7 5|3 = 7
~ ---按位取反 (~i 就是把i變數所有的二進位制位取反)
~0101 -》1010
^ ---按位異或(相同為0 不同為1)
1^0 = 1 0^1 = 1 0^0 = 0 1^1 = 0 5^3 = 7
<< ----按位左移(數向左移動幾位數 補零)
5>>1 = 50 (相當於乘於10^1次方) 二進位制 0101>>2 010100 (相當於乘於2^2次方)
>> ---按位右移()
相關文章
- 必備知識
- 設計模式必備知識點---六大設計原則設計模式
- Web前端必備基礎知識點,百萬程式設計師:牛逼!Web前端程式設計師
- 前端&後端程式設計師必備的Linux基礎知識前端後端程式設計師Linux
- css必備知識點CSS
- 必備知識點 路由路由
- 必備知識點 模版
- 程式必備區塊鏈基礎知識區塊鏈
- Java程式設計師漲薪必備的效能調優知識點,收好了!Java程式設計師
- 機器學習之必備知識篇機器學習
- 騰訊 PHP 面試必備知識PHP面試
- 網路基礎必備知識
- Redis 面試必備知識點Redis面試
- 前端必備知識點—SVG前端SVG
- OpenStack必備基礎知識
- 必備知識點 檢視
- 程式猿必備的Linux基礎知識Linux
- 程式設計師必須掌握的五個seo知識程式設計師
- 程式設計師必備裝備!程式設計師
- 程式設計師MAC必備程式設計師Mac
- 程式設計必備基礎 計算機組成原理+作業系統+計算機網路,計算機基礎——更適合程式設計師的程式設計必備基礎知識作業系統計算機網路程式設計師
- 這 20 多個高併發程式設計必備的知識點,你都會嗎?程式設計
- linux嵌入式程式設計開發必備知識,這些你都要知道Linux程式設計
- 雲原生時代,分散式系統設計必備知識圖譜(內含22個知識點)分散式
- 容器雲開發必備知識
- DBA七個必備知識點
- 必備知識點 模型層ORM模型ORM
- 高階Java程式設計師要具備哪些知識Java程式設計師
- PHP 程式設計必知重點PHP程式設計
- 程式設計師跳槽必備神器程式設計師
- Java程式設計師必備技能Java程式設計師
- Java入門基礎學習,成為一個Java程式設計師的必備知識Java程式設計師
- ython 3.x 連線資料庫(pymysql 方式),程式設計師必備知識點資料庫MySql程式設計師
- 備忘錄設計模式知識概括設計模式
- 前端進階必備知識彙總前端
- Web前端必備-Nginx知識彙總Web前端Nginx
- 安卓開發必備顏色知識安卓
- [原]JavaScript必備知識系列-開篇JavaScript