java Integer中的方法解析(位操作)
方法 | 描述 |
---|---|
static int bitCount(int i) | 返回i的二進位制中1的個數. |
static int compare(int x, int y) | 比較兩個int型別的值 |
int compareTo(Integer anotherInteger) | 比較兩個Integer型別的值 |
static int compareUnsigned(int x, int y) | 比較兩個無符號int型別的值 |
static Integer decode(String nm) | 將string編碼成integer |
static Integer getInteger(String nm, Integer val) | 獲取系統屬性裡的數字 |
static int highestOneBit(int i) | 看錶格下面的註釋 |
static int lowestOneBit(int i) | 看錶格下面的註釋 |
static int max(int a, int b) | 獲取最大值,內部呼叫Math.max()比較; |
static int min(int a, int b) | 獲取最小值,內部呼叫Math.min()比較; |
static int numberOfLeadingZeros(int i) | 二進位制i頭部1前有多少個0 |
static int numberOfTrailingZeros(int i) | 二進位制i尾部1後有多少個0 |
static int parseInt(String s) | 以十進位制解析帶符號的字串s為int型別 |
static int parseInt(String s, int radix) | 以radix進位制解析帶符號的字串s為int型別 |
static int parseUnsignedInt(String s) | |
static int parseUnsignedInt(String s, int radix) | |
static int reverse(int i) | 反轉i的二進位制順序返回相應的十進位制數 |
static int reverseBytes(int i) | 按位元組(8位)反轉返回相應的十進位制數 |
static int rotateLeft(int i, int distance) | 左移 |
static int rotateRight(int i, int distance) | 右移 |
static int signum(int i) | i為正數返回1,0返回0,負數返回-1 |
static int sum(int a, int b) | 加 |
static String toBinaryString(int i) | 將數變為2機制返回 |
static String toHexString(int i) | 將數變為16機制返回 |
static String toOctalString(int i) | 將數變為8機制返回 |
static long toUnsignedLong(int x) | 轉為無符號的long型別 |
static String toUnsignedString(int i) | |
static String toUnsignedString(int i, int radix) | |
static Integer valueOf(int i) | int型別轉為Integer |
static Integer valueOf(String s) | String型別轉為Integer |
static Integer valueOf(String s, int radix) | String型別以radix進位制轉為Integer |
highestOneBit(int i)
若i為正整數,例如i=9,其二進位制為1001,最高位1的權值為8,則返回值為8
若i為負整數,最高位1為符號位,返回值為-2147483648
若i為零,返回值為0
lowestOneBit(int i)
若i非零,返回值為最低位1的權值
若i為零,返回值為0
System.out.println(Integer.bitCount(15));//4
System.out.println(Integer.bitCount(24));//2
System.out.println(Integer.highestOneBit(15));//8
System.out.println(Integer.toBinaryString(15));//1111
System.out.println(Integer.toBinaryString(Integer.highestOneBit(15)));//1000
System.out.println(Integer.highestOneBit(24));//16
System.out.println(Integer.toBinaryString(24));//11000
System.out.println(Integer.toBinaryString(Integer.highestOneBit(24)));//10000
System.out.println(Integer.highestOneBit(-500));//-2147483648
System.out.println(Integer.lowestOneBit(24));//8
System.out.println(Integer.toBinaryString(24));//11000
System.out.println(Integer.toBinaryString(Integer.lowestOneBit(24)));//1000
System.out.println(Integer.numberOfLeadingZeros(15));//28
System.out.println(Integer.numberOfLeadingZeros(24));//27
System.out.println(Integer.numberOfTrailingZeros(15));//0
System.out.println(Integer.numberOfTrailingZeros(24));//3
System.out.println(Integer.reverse(15));//-268435456
System.out.println(Integer.toBinaryString(Integer.reverse(15)));//11110000000000000000000000000000
System.out.println(Integer.reverseBytes(0xABCDEF01));//32492971
System.out.println(Integer.toHexString(Integer.reverseBytes(0xABCDEF01)));//1efcdab
解析:
1. bitCount():15二進位制為1111,共4位1;24二進位制為11000,共2位1。
2. highestOneBit():保留15二進位制1111最高位1,隨後全部替換為0,即1000,十進位制為8;保留24二進位制11000最高位1,隨後全部替換成0,即10000十進位制為16.負數最高位為1,所以是-2147483648。
3. lowestOneBit():保留24二進位制11000最低位的1,隨後全部替換成0,即1000十進位制為8.
4. numberOfLeadingZeros():整型是32位的二進位制,15二進位制1111前有32-4=28個,24二進位制為11000有32-5=27個
5. numberOfTrailingZeros():15二進位制1111後面沒有0;24二進位制為11000,後面只有3個0.
6. reverse():將二進位制順序倒轉過來,15二進位制1111,倒轉為11110000000000000000000000000000,即-268435456
7. reverseByte():0xABCDEF01 為16進位制數,以位元組為單位即AB_CD_EF_01,倒轉為01_EF_CD_AB,即32492971
相關文章
- Java中Integer類的基本方法Java
- java流的中間操作原始碼解析Java原始碼
- java的Integer中也會有快取Java快取
- Java中的按位操作——Java程式設計思想筆記Java程式設計筆記
- Java中Integer的valueOf方法,-128到127的整數將被快取Java快取
- 規範的位操作方法
- Java中8進位制和16進位制的表示方法Java
- 【Java】位操作符Java
- Java Integer的快取策略Java快取
- [Java基礎]IntegerJava
- 理解Java Integer的快取策略Java快取
- Java中的位運算Java
- 整理一些 JDK 中 Integer 實用但不常用的方法JDK
- Java中Math.abs(Integer.MIN_VALUE)的值是其本身!Java
- JAVA解析XML的四種方法JavaXML
- Java位操作快速指南 (Dev Genius)Javadev
- Java二進位制操作指南Java
- java中檢驗字串中包含某個字元或欄位的方法Java字串字元
- java中的方法Java
- Java中網際網路地址解析方法與模式Java模式
- PB中位操作的實現程式碼
- Java保留兩位小數的方法Java
- Java Integer型別比較Java型別
- Reverse Integer leetcode javaLeetCodeJava
- Integer to Roman leetcode javaLeetCodeJava
- Roman to Integer leetcode javaLeetCodeJava
- Java中的基本型別包裝類 Integer 類該怎麼使用?Java型別
- Java中取小數點後兩位(四種方法)Java
- JS操作二進位制方法 - blobJS
- node中的url常用方法解析
- JAVA類中透過Servlet操作JSP中Session變數方法JavaServletJSSession變數
- Java陣列操作的10大方法Java陣列
- Java 中泛型的全面解析Java泛型
- 深入解析Java中的泛型Java泛型
- Java 中的方法引用Java
- Java 併發包原子操作類解析Java
- java基礎:Integer — 原始碼分析Java原始碼
- java Integer 原始碼 面試必備Java原始碼面試