筆記 Java 進製和位運算

2021-07-10 21:01:33 字數 1693 閱讀 2725

二進位制:只有0和1組成的一組數成為二進位制數,計算機中的資料都是以二進位制形式進行儲存的。

通常乙個二進位制數最高位是1,那麼對應的十進位制數為負數,如果最高位是0,那麼對應的數是正數

八進位制:乙個二進位制數表示成八進位制數,將該二進位制數從右到左每三位一組,每一組算出對應的十進位制數,

每組對應的十進位制數連起來就是八進位制表現形式。八進位制表現形式最高是7

十進位制:常用的數都是十進位制數。

十六進製制:0-9,a-f或a-f的表現形式,a-f表示的是10-15

乙個數表現為十六進製制,將該數的二進位制表現形式從右到左每四位分一組,每一組計算出對應的十進位制數,

如果該組計算出的十進位制數大於9,則要用對應的字母表示,然後將每組算出的結果連起來便是該數的十六進製制表現形式。

十進位制轉換成二進位制:將乙個數連續除以2得到的餘數連起來就是該十進位制數的二進位制表現形式。

二進位制轉換成十進位制:從右到左每位數乘以2的n次冪,第一位乘以2的0次冪,第二位乘以2的1次冪,,,

以此類推,最後將所有的結果相加得到的結果就是該二進位制數對應的十進位制數。

& :與運算、有假則假,可參與位運算

true & true = true;

true & false = false;

false & true = false;

false & false = false;

| :或運算、有真則真,可參與位運算

true | true = true;

true | false = true;

false | true = true;

false | false = false;

^ :異或運算、兩邊相同結果為假,兩邊不同結果為真,可參與位運算

true ^ true = false;

true ^ false = true;

false ^ true = true;

false ^ false = false;

&&:與、&&和&的區別:

&&:兩個表示式中,當左邊的表示式結果為false時,右邊的表示式不會執行

& :兩個表示式都會執行

||:或、|和||的區別

||:兩個表示式中,當左邊的表示式結果為true時,左邊的表示式不會執行

| :兩個表示式都會執行

! :非、取反

~ :反碼、將乙個十進位制數的二進位制表現形式進行取反,1變0,0變1

位運算:

位移運算是最快的運算方式,其運算方式是將該數的2進製表現形式進行位移。

左移:<< 左移位數越大,結果越大,

左移的運算:乙個數左移多少位,就是該數乘以2的該位數次冪

右移:>> 右移位數越大,結果越小

右移的運算:乙個數右移多少位就是該數除以2的該位數次冪

無符號右移: >>>

將乙個2進製數右移後,其最高位缺失,需要補位,右移運算時缺失的位取決於原2進製數的最高位

若原2進製數的最高位是0,則用0來補齊缺失的位,若原2進製數的最高位是1,則用1來進行補齊

而無符號右移則無視原2進製數的最高位是0還是1,都用0來補齊

如何計算出乙個負數的二進位制表現的十進位制值?

將該負數的二進位制減去一再取反得出乙個正數的二進位制表現形式,該正數的十進位制相反數就是該負數的二進位制表示的十進位制值

位運算和進製轉換

位運算指的是對二進位制進行的計算處理。主要有 與 或 異或 求反 其特徵為 都是1的時候才是1 如 13 7 計算過程為 13的二進位制 1101 7的二進位制 0111 得到結果 0101 轉換成10進製則是5 計算過程為 1101 0111 按照或運算得到結果是 1111 轉化成10進製為 15...

進製和位運算典型題目

原碼 正數的二進位制數表示就是原碼。負數的原碼按照絕對值大小轉換成的二進位制數,然後最高位補1。反碼 正數的反碼和原碼相同。負數的反碼和除符號位按位取反。補碼 正數的補碼和原碼相同。負數的補碼為反碼加1。計算機中,採用補碼表示和儲存。為什麼採用補碼 由於計算中的cpu只有加法器,沒有減法器,所以在計...

c語言 進製和位運算

一.進製 十進位制轉n進製 連除倒取餘.以 10 為例,不同進製的表示方法 十進位制 10 二進位制 0b1010 八進位制 010 十六進製制 0x10 int a 100 printf o a 如何輸出進製數 d 十進位制 o 八進位制 0x 十六進製制 位運算子 按位與 按位或 按位非 按位異...