[英]Casting of primitives type
我是Java的初學者。 經過長時間的嘗試,我無法理解這條線。
byte num =(byte)135;
這一行給出結果-121為什么它是簽名號碼?
任何人都可以詳細說明嗎?
在Java中, byte
s始終是有符號的,它們的范圍是-128
到127
。 當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.