簡體   English   中英

鑄造原始類型

[英]Casting of primitives type

我是Java的初學者。 經過長時間的嘗試,我無法理解這條線。

byte num =(byte)135;

這一行給出結果-121為什么它是簽名號碼?

任何人都可以詳細說明嗎?

在Java中, byte s始終是有符號的,它們的范圍是-128127 int literal 135被下載到一個byte ,結果是負數,因為第8位被設置。

 1000 0111

具體而言, JLS第5.1.3節規定:

將有符號整數縮小到整數類型T只會丟棄除n個最低位之外的所有位,其中n是用於表示類型T的位數。除了可能丟失有關數值大小的信息之外,這可能導致結果值的符號與輸入值的符號不同。

當你將一個int文字(如135為一個byte ,這是一個縮小的原始轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM