MySql之位運算學習

前言:

  上學沒好好上,工作幾年位運算也不知道怎麼回事,最近學算法遇到不理解,因此補習一下。以下爲個人學習中的理解,畢竟是小白。有錯誤的還請指出。
(1)二進制轉換方法

不要笑話我二進制轉換都忘了,在這裏介紹一下二進制與十進制互轉方法:
在這裏插入圖片描述
18轉二進制:
理解方法:18>16 在下面畫1,18-16=2。2不大於8和4,繼續往左移。2-2=0,在2的下面畫1。最終得到:10010
反轉:按照給的二進制數,按照從左到右填寫。再進行相加。結果:2+16=18;
之所以要轉成二進制是方便電腦讀取,它代表了電子的兩個狀態,on和off;

(2) 理解原碼、反碼和補碼

原碼:原碼錶示法在數字前面增加了一位符號位,即最高位爲符號位,正數位該位爲0,負數位該位爲1.比如十進制的5如果用8個二進制位來表示就是00000101,-5就是10000101。

反碼:正數的反碼是其本身,負數的反碼在其原碼的基礎上,符號位不變,其餘各個位取反。5的反碼就是00000101,而-5的則爲11111010。

補碼:正數的補碼是其本身,負數的補碼在其原碼的基礎上,符號位不變,其餘各位取反,最後+1。即在反碼的基礎上+1。5的反碼就是00000101,而-5的則爲11111011。

(3)位運算符

在這裏插入圖片描述
舉例1:9&7 1001對比111 爲:1
在這裏插入圖片描述
舉例二:9|7 結果爲:1111。再轉化爲十進制爲15;
舉例三:2<<1,表示2左移1位。2的十進制爲10 ,左移一位爲:100。再轉化爲十進制結果爲:4.
舉例四:3>>1,表示3右移1位,一列的例外。3的十進制爲11,右移一位爲:1.1。因爲位運算只對整數有效,所以會省略小數點後的數。最終結果爲:1;
舉例五:一個數據對另一個數據位異或兩次,該數本身不變。10^ 20 ^20 結果爲10;
Java相關位運算應用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章