欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java二進制運算基礎(chǔ)知識點詳解

 更新時間:2019年08月04日 14:40:30   作者:JoahYau  
在本文里小編給大家分享了關(guān)于java二進制運算基礎(chǔ)知識點以及實例代碼內(nèi)容,需要的朋友們參考學習下。

一、二進制位運算

1. 按位與(&)

位運算實質(zhì)是將參與運算的數(shù)字轉(zhuǎn)換為二進制,而后逐位對應(yīng)進行運算。

按位與運算為:兩位全為1,結(jié)果為1,即1&1=1,1&0=0,0&1=0,0&0=0。

例如51 & 5 -> 00110011 & 00000101 = 00000001 -> 51 & 5 = 1

特殊用法:

(1)與0相與可清零。

(2)與1相與可保留原值,可從一個數(shù)中取某些位。例如需要取10101110中的低四位,10101110 & 00001111 = 00001110,即得到所需結(jié)果。

2. 按位或(|)

兩位只要有一位為1,結(jié)果則為1,即1|1=1,1|0=1,0|1=1,0|0=0。

特殊用法:

(1)與0相或可保留原值。

(2)與1相或可將對應(yīng)位置1。例如,將X=10100000的低四位置1,使X | 00001111 = 10101111即可。

3. 異或運算(^)

兩位為“異”,即一位為1一位為0,則結(jié)果為1,否則為0。即1^1=1,1^0=0,0^1=0,0^0=1。

特殊用法:

(1)使指定位翻轉(zhuǎn):找一個數(shù),對應(yīng)X要翻轉(zhuǎn)的各位為1,其余為0,使其與X進行異或運算即可。例如,X=10101110,使低四位翻轉(zhuǎn),X ^ 00001111 = 10100001。

(2)與0相異或保留原值。例如X ^ 00000000 = 10101110。

(3)交換兩變量的值。(比借助容器法、加減法效率高)原理:一個數(shù)對同一個數(shù)連續(xù)兩次進行異或運算,結(jié)果與這個數(shù)相等。

因此,交換方法為:A = A ^ B,B = A ^ B,A = A ^ B。

4. 取反(~)

將一個數(shù)按位取反,即~ 0 = 1,~ 1 = 0。

5. 左移(<<)

將一個數(shù)左移x位,即左邊丟棄x位,右邊用0補x位。例:11100111 << 2 = 10011100。

拓展:

  • ==原碼==:一個整數(shù)按照絕對值大小轉(zhuǎn)換為二進制即為原碼;
  • ==反碼==:將二進制數(shù)按位取反,得到的即為反碼;
  • ==補碼==:反碼加1即為補碼。
  • ==由于計算機底層硬件的限制,負數(shù)均使用補碼表示。==

若左移時舍棄的高位全為0,則每左移1位,相當于該數(shù)十進制時乘一次2。

例:11(1011) << 2 = 44(11表示為1011時實際上不完整,若計算機中規(guī)定整型的大小為32bit,則11的完整二進制形式為00000000 00000000 0000000 00001011)

6. 右移(>>)

將一個數(shù)右移若干位,右邊舍棄,正數(shù)左邊補0,負數(shù)左邊補1。每右移一位,相當于除以一次2。

例:4 >> 2 = 1,-14 >> 2 = -4。

7. 無符號右移(>>>)

將一個數(shù)右移若干位,左邊補0,右邊舍棄。

例:-14 >>> 2 = (11111111 11111111 11111111 11110010) >>> 2 = (00111111 11111111 11111111 11111100) = 1073741820

二、Java內(nèi)置的進制轉(zhuǎn)換

用途 方法
十進制轉(zhuǎn)成十六進制 Integer.toHexString(int i)
十進制轉(zhuǎn)成八進制 Integer.toOctalString(int i)
十進制轉(zhuǎn)成二進制 Integer.toBinaryString(int i)
十六進制轉(zhuǎn)成十進制 Integer.valueOf("FFFF", 16).toString()
八進制轉(zhuǎn)成十進制 Integer.valueOf("2234", 8).toString()
二進制轉(zhuǎn)成十進制 Integer.valueOf("0110", 2).toString()

感謝大家的閱讀和對腳本之家的支持。

相關(guān)文章

  • springsecurity輕松實現(xiàn)角色權(quán)限的示例代碼

    springsecurity輕松實現(xiàn)角色權(quán)限的示例代碼

    這篇文章主要介紹了springsecurity輕松實現(xiàn)角色權(quán)限的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • java壓縮文件和下載圖片示例

    java壓縮文件和下載圖片示例

    這篇文章主要為大家詳細介紹了java壓縮文件和下載圖片示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • SpringBoot中的自動裝配原理解析

    SpringBoot中的自動裝配原理解析

    這篇文章主要介紹了SpringBoot中的自動裝配原理解析,自動裝配就是指 Spring 容器在不使用<constructor-arg>和<property>標簽的情況下,可以自動裝配(autowire)相互協(xié)作的Bean之間的關(guān)聯(lián)關(guān)系,將一個 Bean注入其他Bean的Property中,需要的朋友可以參考下
    2023-08-08
  • SpringBoot整合Drools的實現(xiàn)步驟

    SpringBoot整合Drools的實現(xiàn)步驟

    Drools是一個易于訪問企業(yè)策略、易于調(diào)整以及易于管理的開源業(yè)務(wù)規(guī)則引擎,符合業(yè)內(nèi)標準,速度快、效率高。業(yè)務(wù)分析師或?qū)徍巳藛T可以利用它輕松查看業(yè)務(wù)規(guī)則,從而檢驗是否已編碼的規(guī)則執(zhí)行所需的業(yè)務(wù)規(guī)則。本文將講述SpringBoot整合Drools的步驟
    2021-05-05
  • JavaApi實現(xiàn)更新刪除及讀取節(jié)點

    JavaApi實現(xiàn)更新刪除及讀取節(jié)點

    這篇文章主要介紹了JavaApi實現(xiàn)更新刪除及讀取節(jié)點,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • Java中Mono類的一些基本方法和示例代碼

    Java中Mono類的一些基本方法和示例代碼

    在Java編程中,我們經(jīng)常會遇到需要創(chuàng)建單例(singleton)對象的情況,單例模式是一種常見的設(shè)計模式,它保證一個類只有一個實例,并提供一個全局訪問點,這篇文章主要給大家介紹了關(guān)于Java中Mono類的相關(guān)資料,需要的朋友可以參考下
    2024-07-07
  • Spring事務(wù)管理的使用細則淺析

    Spring事務(wù)管理的使用細則淺析

    事務(wù)的作用就是為了保證用戶的每一個操作都是可靠的,事務(wù)中的每一步操作都必須成功執(zhí)行,只要有發(fā)生異常就 回退到事務(wù)開始未進行操作的狀態(tài)。事務(wù)管理是Spring框架中最為常用的功能之一,我們在使用Spring開發(fā)應(yīng)用時,大部分情況下也都需要使用事務(wù)
    2023-02-02
  • zookeeper端口說明及介紹

    zookeeper端口說明及介紹

    這篇文章主要介紹了zookeeper端口說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-07-07
  • springMVC傳遞list對象的三種使用方式

    springMVC傳遞list對象的三種使用方式

    這篇文章主要介紹了springMVC傳遞list對象的三種使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • IDEA+Maven搭建JavaWeb項目的方法步驟

    IDEA+Maven搭建JavaWeb項目的方法步驟

    本文主要介紹了IDEA+Maven搭建JavaWeb項目的方法步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11

最新評論