第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

強制轉(zhuǎn)換問題 謝謝了!

強制轉(zhuǎn)換問題 謝謝了!

慕姐8946757 2017-08-28 23:21:28
package com.heima;public class Demo4 { public static void main(String[] args) { int num = 130; byte x = (byte) num; System.out.println(x); }}請問這段代碼打印為什么是-126;者個強制轉(zhuǎn)換byte取值不是-128~127嗎? 為什么回事-126啊 解釋下 謝謝!
查看完整描述

3 回答

已采納
?
望遠

TA貢獻1017條經(jīng)驗 獲得超1032個贊

//這里涉及到二進制與十進制轉(zhuǎn)化的問題
并且Java中int占4個字節(jié),byte占1個字節(jié),在通過int強轉(zhuǎn)為byte時會發(fā)生截斷,導致數(shù)據(jù)失真,這里就是這個問題
public?class?Demo4?{
public?static?void?main(String[]?args)?{
//num是int類型數(shù)據(jù),占32位
//即?00000000?00000000?00000000?10000010
int?num?=?130;
//這里嘗試將num強轉(zhuǎn)為byte類型,而byte只有8位,發(fā)生截斷,取后8位
//即10000010?舍棄了前面24個0
byte?x?=?(byte)?num;
//那么二進制10000010表示的10進制是多少?
//java中數(shù)據(jù)的表示采取的是補碼的形式,即最高位表示符號位,1為負,0為正
//那到底是表示負幾?
//這就要將補碼轉(zhuǎn)化為原碼
//補碼轉(zhuǎn)原碼--負數(shù)(符號位為1的數(shù))變?yōu)樵a時符號位不變,其余各項取反,最后在末尾+1
即補碼10000010??-->?原碼11111110
//原碼11111110表示十進制多少?
//最高位1表示負數(shù),低7位1111110表示十進制126,即原碼11111110表示十進制-126
?System.out.println(x);
}
}


查看完整回答
7 反對 回復 2017-08-29
?
qq_安安_17

TA貢獻49條經(jīng)驗 獲得超52個贊

public?class?Demo4?{
????public?static?void?main(String[]?args)?{
????int?num?=?130;//定義一個num為int型
????byte?x?=?(byte)?num;
????//把num強制轉(zhuǎn)化為byte型后,將結(jié)構(gòu)傳遞給一個新定義的byte型的x
????System.out.println(x);
????}
}

你是不是不知道強制轉(zhuǎn)換???答案已經(jīng)十分詳細了,為什么沒看懂呢?

Java語言是一種強類型的語言。數(shù)據(jù)直接的轉(zhuǎn)換有兩個:

  • 自動類型轉(zhuǎn)換:從存儲范圍小的類型到存儲范圍大的類型。 具體規(guī)則為:?
    byte→short(char)→int→long→float→double?

  • 強制類型轉(zhuǎn)換:從右向左轉(zhuǎn)換需要強制

? ?之后結(jié)合也有解答了,就不贅述了

??

查看完整回答
3 反對 回復 2017-08-29
?
onemoo

TA貢獻883條經(jīng)驗 獲得超454個贊

Java 中 int 型占 32 位,byte 占 8 位。Java 的整型間從長到短強制轉(zhuǎn)型過程只是按位截斷。

十進制數(shù) 130 其二進制表示的最后 8 位是?10000010。

轉(zhuǎn)型為 byte 會從低地址位按位截斷,也就是只保留最后的這 8 位: 10000010。

而 Java 中的整型是有符號數(shù),第一位是符號位。符號位為 1 表示這是負數(shù)。負數(shù)用二進制補碼表示,而 10000010 作為補碼就表示十進制的 -126。

查看完整回答
3 反對 回復 2017-08-29
  • 慕姐8946757
    慕姐8946757
    還是不太懂啊 能說的仔細點嗎?這個int強制轉(zhuǎn)換為byte 是怎么回事?
  • onemoo
    onemoo
    你能說說你哪里沒看懂嗎?
  • 3 回答
  • 1 關(guān)注
  • 1850 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號