1. 程式人生 > >Java的位移運算子

Java的位移運算子

接觸java有三年了,工作也快半年了,今天在寫程式碼的時候碰到了java的位移運算子,於是又重新好好學習了一遍。

“>”,“>>”,“>>>”這三個運算子當中後面的兩個可能很多人都不是特別明白,一般的開發中也用的比較少。

“>”不用說,就是大於的意思。

“<<”代表左移,

例如:3 << 1代表 3 左移1位,在移位的時候要換成2進位制,

3的二進位制是:0000 0011, 左移一位之後的二進位制就是 0000 0110,0000 0110換成十進位制就是6.

(移動之後末尾用0來補,左移幾位加幾個0)

所以3<<1 = 6;

同理“>>”代表右移,

例如 13>>2.

13的二進位制是0000 1101,右移二位的結果是0000 0011,0000 0011的十進位制結果是3,

所以13>>2的結果就是3

“>>>”

j>>>i的運算結果和 j / (int) (Math.pow(2, i))的運算結果是相同的,

for (int i = 0; i < 5; i++) {
			for (int j = 0; j < 100; j = j + 5) {
				System.out.println(j / (int) (Math.pow(2, i)));
				System.out.println(j >>> i);
			}
		}

Math.pow(a,b)這個函式的兩個引數是double型別,表示a的b次方。

例如Math.pow(3.0,2.0)的值是9.0

相關推薦

java位移運算子

<< : 左移運算子,num << a,相當於num乘以2的a次方 >> : 右移運算子,num >> a,相當於num除以2的a次方 左移運算子<<: 100<<1=100*2^1=100*2=200

深刻理解Java位移運算子

 移位操作符操作的運算物件是二進位制的位(Bit),只可用來處理整數型別(基本型別的一種)。移位操作可分為 左移操作符(<<)、“有符號”右移操作符(>>)、“無符號”右移操操作符(>>>)三種。 左移操作符 ( <<): 

JAVA位移運算子瞭解`> >>>`

//如果你開始讀了,那麼一定要讀到末尾才有收穫 public static void main(String[] args) { // 關於位移運算的測試 // 帶符號位移: <<

Java 位移運算子

java中有三種移位運算子 << : 左移運算子,num << 1,相當於num乘以2 >> : 右移運算子,num >> 1,相當於num除以2 >&g

JAVA位移運算子用法

Java定義的位運算(bitwise operators)直接對整數型別的位進行操作,這些整數型別包括long,int,short,char,and byte。表4-2列出了位運算: 表4.2 位運算子及其結果 運算子 結果 ~ 按位非(NOT)(一元運算) & 按位與(AND) | 按位或(OR) 

java基礎:位移運算子

說說這倆個: << 左移 >> 右移 1.x << y 意思是x向左移動了y個.一般結果是x乘以2的y次方. 如: 5 << 3  = 40  0000 0101 = 5 0010 1000 = 32 + 8

Java位移運算子

接觸java有三年了,工作也快半年了,今天在寫程式碼的時候碰到了java的位移運算子,於是又重新好好學習了一遍。 “>”,“>>”,“>>>”這三個運算子當中後面的

java 學習筆記之位移運算子

位移運算子以前一直沒怎麼注意,今天因為某些原因使用了一下,結果跟預期不一樣,所以回頭看了一下,最終發現在使用的時候還是有一些注意事項的。 java中提供了3個位移運算子: 1.帶符號的右移運算子(>>):將運算子左邊的運算物件向右移動運算子右側指定的位數。“有符

java 位移運算符

parse 位移 string sys pre junit color org bin import org.junit.Test; /** * 1)<< : 左移運算符 * 2)>> : 右移運算符 (測試正數) * 3)>>

Java 003 運算子 鍵盤錄入資料

知識點梳理 心得體會 小知識點 1.以下幾組運算子的區別 =和= =: =為賦值 = =為比較 ++或——位置: ++或–在前,先自加或自減,再參與運算 ++或–在後,先參與運算,再自加或自減 &&和||: &&左邊true才會判斷右邊,左邊

java運算子運算子的優先順序

位運算子 位運算子:對二進位制的直接運算 計算機內部的資料都是以二進位制形式存在的,而二進位制在計算機內部又有多種編碼方式 (計算機內部對二進位制進行運算用的是補碼) 原碼:第一位是符號位 0正1負 3: 0000 0011 反碼:正數的反碼和原碼一樣,負數的反碼,保留

java入門基礎篇——java運算子

  自減:- -自增:++ 功能:使變數的值增一或者減一 a++(a--):使用變數之後,在對變數進行+1(或者-1) ++a (--a):使用變數之前,就對變數進行+1(或者-1) 比較運算子:> (大於)、<(小於)、 ==(等於)、 >

java instanceof運算子

Java instanceof運算子 instanceof運算子用於測試指定物件是否是指定型別(類或子類或介面)的例項,它返回true或false。 如果對任何具有null值的變數應用instanceof運算子,則返回false。 class Simple {

Java移位運算子

Java中位運算子是針對(二進位制)來進行運算的,其中移位運算子中的左移相當於十進位制(乘以2),右移相當於十進位制(除以2),>>和>>>的區別是(>>有符號右移,>>>無符號右移,。。。。)左乘右除

一篇文章讀懂Java語言運算子(即操作符)

計算機的最基本用途之一就是執行數學運算。在最底層,JAVA中的資料是通過使用操作符來操作的。 將操作符以功能為區分進行分組: 算術運算子(執行加減乘除,自增、自減) 關係運算符(判斷值與值的關係為真或為假 例如1>2為false) 位運算子(進行按位運算) 邏輯運算子(&&

Java 邏輯運算子的“短路特性”

做題時,遇到了邏輯預算符的“短路特性”,之前忽視了,在這記錄一下。 &&,||的短路特性: 如果Java虛擬機發現&&左方的表示式為false,則它不需要也不會去計算&&右方表示式才知道要返回false。 同理,如果Java虛擬機發現||左

java比較運算子(不常見的)

檢查是否是某個類的物件 instanceof public class DemoTest { public static void main(String[] args) { String str = "hello"; Object o = n

Java位移運算

最近在補習Java基礎,位移運算是今天的主角。 在此之前我們要先來複習下計算機二進位制的一些概念。 在計算機硬體的世界裡,晶片,處理器等所處理的電訊號都為高低電平,即為10訊號。 順接上篇的一個概念來講下:位元組(byte) 1 byte = 8bit(位) 也就是一

Java運算子-取整,取絕對值,取餘數

舍掉小數取整:Math.floor(3.5)=3四捨五入取整:Math.rint(3.5)=4進位取整:Math.ceil(3.1)=4 取絕對值:Math.abs(-3.5)=3.5取餘數:A%B

Java運算子

<<      :     左移運算子,num << 1,相當於num乘以2 >>      :     右移運算子,num >> 1,相當於num