計算機基礎:2進制和2進制算法。

計算機底層語言就是2進制。2進制世界裏不是0就是1。而日常咱們用的數字或者計算都是十進制的。因此這裏說一下二進制,以供你們參考。spa

  (1)二進制和十進制。3d

      你們都知道十進制是滿十進一,舉個例子9+1=10;89+1=90;(這個你們固然都知道)。orm

      二進制和十進制這個地方也是類似的,是滿2進1,舉例子:01+1=10;11+1=100;。。。blog

  (2)二進制轉化爲十進制it

      而二進制轉化爲十進制很好理解,如:二進制1011轉化爲十進制爲15;(這裏的符號位先忽略)也就是form

      ana(n-1)a(n-2).....a3a2a1(二進制)=an2^(n-1)+a(n-1)2^(n-2)+a(n-2)2^(n-3)....a32^(2)+a22^(1)+a12^(0)(十進制);class

      就是2^(二進制的位數-1)乘以位數上的值  的總和就是轉化爲的十進制。二進制

  (3)十進制轉化爲二進制(整數)方法

      十進制整數轉二進制數:除以2取餘,逆序排列。im

       
      89÷2 ……1
      44÷2 ……0
      22÷2 ……0
      11÷2 ……1
      5÷2 ……1
      2÷2 ……0
      1

   (4)二進制的加減乘除

      「+」:有四種狀況:0+1=1;1+1=10;1+0=1;0+0=0;也就是逢2進1。

      

      「-」:0-0=0;1-0=1;10-1=01;1-1=0;不滿借一

      「*」:0*0=0;1*0=0;0*1=0;1*1=1;

      「/」:0/1=0;1/1=1;

  (5)二進制的原碼,反碼,補碼。

      原碼就是:十進制數轉換成二進制變成的二進制數或者能夠說待處理的二進制數均可一說成原碼。  

      反碼:就是原碼全部取反(1變0,0變1);

      補碼:就是反碼加一。(補碼就是負數在計算機中的二進制表示方法,求補碼的十進制就是:補碼減一取反加負號)。

  (6)二進制運算符

      「&」(按位與):1&1=1;1&0=0&1=0&0=0(數的對應位均爲1,則爲1;反之,則爲0)。

        例:

      「|」(按位或):1|0=0|1=1|1=1;0|0=0(數的對應位只要有1,則爲1;反之,則爲0)。

      「^」(按位異或):1^1=0^0=0;0^1=1^0=1;(相同異或爲0;不一樣異或爲1)。

      「~」(按位取反):~1=0;~0=1;(1變0,0變1,而且符號位參與運算就是正數取反是負數,負數取反是正數)。

      「<<」(按位左移):c=a<<b;(a左移b位。右邊補0)

      「>>」(有符號的右移):c=a>>b;(a右移b位,左邊補符號位。注意:負數以原碼參與運算)。

       「>>>」(無符號的右移):c=a>>>b;(a右移b位。左邊補0。注意:全部數據以無符號的方式參與運算)。

 關於Java的二進制一些小命令:Integer.toBinaryString(a);(把a值轉換爲2進制)

               Integer.valueOf("a", 2);(把2進制的a轉換爲int值)

(日常其餘進制用的也很少,因此8進制、16進制和其餘暫且不討論)

相關文章
相關標籤/搜索