java移位的問題(java上移下移)

本文目錄一覽:

java 移位 問題

1.為什麼,我直接操作上面定義的i,不會報錯呢?

答:當然不報錯。因為移位操作默認對其它進位先轉換成二進位再通過二進位運算的。

i3 ;

2.在定義一個變數

int temp = 0 ;

//這時候的temp等於多少?

temp |= (i3) ;

答:

i3=i*2 的3次方 為8

temp |= (i3) ;就相當於temp=temp|8-0|(0000…1000)轉換為二進位-8

>1」和「-1>>>1」有何差別?’>java移位運算問題:「-1>>1」和「-1>>>1」有何差別?

這個是帶符號右移

這個是無符號右移

-1的二進位反碼錶示為 11111111 11111111 11111111 11111111

-11的結果是 : 1111111 1111111 11111111 1111111

-11的結果是: 01111111 11111111 1111111 11111111

無符號右移後前面補0,而帶符號右移是補符號位,也就 是第一位,負數補1,正數補0

Java的優點:

java是純面向對象編程的語言;

平台無關性 (一次編譯,到處運行;Write Once,Run Anywhere);

java提供了許多內置的類庫,通過這些類庫,簡化了開發人員的設計工作,同時縮短了項目開發時間;

提供了對Web應用開發的支持,例如,Applet,Servlet,和JSP可以用來開發Web應用程序,Socket,RMI可以用來開發分散式應用程序的類庫。

Java移位運算符問題

有符號右移會保留最高位的符號位,從次高位開始逐位右移填0;而無符號右移會將符號位一起右移,並將高位全部填0。

例:對於一個byte類型的數10010100來說,有符號右移2位變為10000101,而無符號右移2位變為00100101。前者仍然是一個負數,而後者變成了正數。

左移只有有符號的,沒有無符號左移。

JAVA的移位運算

全錯。

在java中,對byte型進行位移操作,那麼在移位進行之前,它們會自動轉換成一個int,得到的結果也是int

第一題-17:11111111

11111111

11111111

11101111

(無符號右移2位)後為

00111111

11111111

11111111

11111011

=

1073741819

同上

第二題為:00011111

11111111

11111111

11111010

第三題為0

java 移位運算

「系統先用b對32求余」 看這句了嗎。

int 一共32位,移32時,已經全部是0。

你希望只移32位,b就不要多於32。開始移位之前做一下判斷。

JAVA移位問題

將-1轉換為2進位就是所有位上全為1

向右移10位所有位上依舊為1

所以其實b的值並沒變還是-1

所以第二次輸出的時候還是相當於Integer.toBinaryString(-1)

還是32個1

最有1次輸出是把轉換出來的2進位數右移10位所以是22個1

其實此時b的值並沒有改變還是-1

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/233849.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-11 17:12
下一篇 2024-12-11 17:12

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Python官網中文版:解決你的編程問題

    Python是一種高級編程語言,它可以用於Web開發、科學計算、人工智慧等領域。Python官網中文版提供了全面的資源和教程,可以幫助你入門學習和進一步提高編程技能。 一、Pyth…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • 如何解決WPS保存提示會導致宏不可用的問題

    如果您使用過WPS,可能會碰到在保存的時候提示「文件中含有宏,保存將導致宏不可用」的問題。這個問題是因為WPS在默認情況下不允許保存帶有宏的文件,為了解決這個問題,本篇文章將從多個…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29

發表回復

登錄後才能評論