Java位運算符

▲ 首先需要了解一些計算機的基礎(chǔ):

  1. 對于一個有符號的數(shù)(能表示正負),最高位就是符號位,其中0代表正數(shù)、1代表負數(shù)。
  2. 原碼:把一個數(shù)換算成二進制形式,就是原碼。
    反碼:原碼中0變1、1變0——除符號位不變。
    補碼:正數(shù)的補碼和原碼一樣的、負數(shù)的補碼等于它的反碼加1。
  3. 計算機底層,所有數(shù)都是以補碼形式保存。

Short s = 264; 舉例,Short 占16位

Short s = -264; 負數(shù)時符號位為1

▲ 位運算符:它只能對整數(shù)進行計算

  1. “&” 與:上下兩位都是1時,得到結(jié)果才是1。
  1. “|” 或:上下兩位只要有一個是1,得到結(jié)果就是1。
  1. “~” 非:單目運算符,原來是0就變1、原來是1就變0,符號都會變。它會改變數(shù)的正負。
  1. “^” 異或:上下兩位不同時,得到結(jié)果就是1、上下兩位相同時,得到結(jié)果是0。
  1. “<<” 左移N位:就相當(dāng)于乘以2的N次方。
  1. “>>” 右移N位:就相當(dāng)于除以2的N次方,如果除不盡,得到結(jié)果總是比實際除得結(jié)果略小的整數(shù)。
  1. “>>>” 無符號右移N位:在最高位總是補0,因此無論之前的數(shù)是什么,運算之后的結(jié)果總是正數(shù)。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容