byte i 127i i的值是多少

2023-01-27 18:10:43 字數 3727 閱讀 6812

1樓:匿名使用者

首先,你要明白原碼、補碼、反碼概念 ,不明白,去小學一年級靜修去。還有,00 00 00 00和 10 00 00 00似乎都可以表示0,因為計算機儲存規定,最高位代表符號位,但是,計算機沒這麼笨,不可能讓一個值用兩個來表示,也就是計算機他先人比較聰明,考慮周全。所以,就規定, 10 00 00 00表示-128.

其次,任何一個有符號的數,他在計算機中儲存,都是以補碼儲存的,無符號的除外。而一個正數的補碼就是其本身,127在計算機中儲存就是 01 11 11 11,負數補碼是原始碼取反得反碼,反碼再加1得補碼。

所以,(以計算機中儲存補碼計算,也就是以模擬計算機計算)01 11 11 11 + 1 =10 00 00 00,他的反碼是 10 00 00 00 -1 =01 11 11 11,再安位取反得原碼10 00 00 00.返現好奇怪哦,10 00 00 00和正數一樣,補碼都是其本身。

至此,結果出來了,他就是-128

這也就是計算機中所謂的溢位,就是一個資料本來最大隻能表示200,但是你卻要給他付900得值,那麼,計算機肯定會按照自己的計算,得出一個人們認為錯誤的值

那麼,這個時候有人又要問了,給一個值,直接將他化為二進位制形式,那麼它是補碼呢還是原碼呢?

確定的告訴你,是原始碼。舉例說明 -127,原碼是:11 11 11 11,反碼是 :10 00 00 00(注:符號位不能取反),補碼是:10 00 00 01.

不給我加分,明天就請我吃肯德基

2樓:匿名使用者

byte i=127;++i i 的值是 -128byte佔一個位元組,能儲存的有符號資料範圍為:-128~127計算機用補碼儲存整數,補碼為正負數概念,且,用補碼儲存資料,所有的整數加減法運算,全按加法操作(有累加器,沒有累減器!)

i=127 二進位制數為:01111111

++i,表示i=i+1

01111111 + 1 = 1000 00001000 0000 是-128的補碼,所以,按整數輸出i時,i值表現為-128.

3樓:

byte型別寬度8位, 正上限值二進位制01111111, 最高位0表示是正數

01111111 + 1 = 10000000, byte發生溢位,符號位溢位進位成1,1表示負號,

而b10000000 = d128

因此結果為-128

byte i=127;i=i+1;這兩個語句可否成功編譯 j**a

4樓:

不會啊 不行你試試 應該是輸出 -128

//測試**

public class testbyte}

5樓:匿名使用者

計算機用補碼儲存整數,補碼為正負數概念 得到結果-128 01111111 ->+1 ->10000000

j**a問題: int i =156; byte b = (byte)i; 結果b是-100。這個

6樓:

67+89=156 轉換為二進位制位10011100 而int最大值位127轉換為二進位制為11111111 相減為-01100011 轉換為十進位制位 -99 為什麼 是-100呢 新手不懂

7樓:匿名使用者

156int型的二進位制是00000000 00000000 00000000 10011100

轉成byte要砍掉前三個位元組,就留下10011100

符號位是1,所以是負數

@j**a大神 這個數值轉換是多少 int i = 256; byte b = (byte) i;

8樓:淡然丶的回憶

不是越界會等於0,int是四個位元組,byte是一個位元組,強制轉換會把後三個位元組自動捨棄。當你定義的int值正好在第一個位元組沒有值的時候,強制轉換成byte型別看到的結果就是0了

9樓:璩山彤

b=0,因為byte的界限為-128-127;

256大於127,越界了。

b=(byte)i;是什麼意思??

10樓:匿名使用者

byte b=i&0x0f 這個語句的意思是將變數b申明為位元組型變數,將變數i的值高四位清0,保留低四位,賦值給變數b。

byte和char 是一個變數型別,申明的變數都為8位,&是」與「邏輯運算子,按位」與「運算,當想要將某位清0時,可以將該位與0做」與「運算;當想保留某位狀態時,就將該位與1做」與「運算。

11樓:吹響那海螺

byte b;

int i=208;

double d=123.456;

b=(byte)i;

system.out.println("int->byte:"+i+"->"+b);

i=(int)d;

system.out.println("double->int:"+d+"->"+i);

b=(byte)i

強制型別轉換..

i 在轉換後還是原來的 208

12樓:韋涵涵

強制型別轉換..

i 在轉換後還是原來的 208

沒有變化...只是強制轉換後的結果賦值給我 b樓主明白了吧

13樓:巫月碎影

b=(byte)i;

將i強制轉換成byte型。(i預設是int型)i=(int)d

將d強制轉換成int型。(d的原型別是double型)

14樓:寂寞聽雨人

把int型的強制轉換成byte型的!

byte i = 225對嗎?(j**a中)

15樓:匿名使用者

是錯誤的,通不過編譯。

得這樣,byte i = (byte) 225。

原因是byte的取值範圍是-128到127。byte i = (byte) 225的話,其實i==-1(參考負數補位方法)

16樓:陽光sun閃爍

byte資料型別用一個位元組(byte)儲存,可區別256個數字,取值範圍:0到255。 byte是從0-255的無符號型別,所以不能表示負數。

已知int i = 2 147 483 647; ++i; 則i的值-2 147 483 648 為什麼?

17樓:匿名使用者

因為負數採用2的補碼,2147483647加一後正好是-2147483648的補碼錶示

18樓:匿名使用者

int 臨界值,但是我沒有測試過是否會報錯

如果你的答案是正確的話,應該是01111....+1變成了11111.....了,符號位變成1了,變成了負數

19樓:匿名使用者

++i;的等價語句為i=i+1;

超出臨界值會給出特殊的值,不可能出現負號

所以你的負號什麼意思?沒看懂

20樓:

int 臨界值就像byte的範圍是-128~127 一樣,最大值再加一 結果就不是byte型了。

byte s=127;

byte s2=(byte) (s+1);

system.out.println(s2); //列印的結果是-128

地稅藍的色值是多少藍色色值是多少

1 抄pantone 7469c 2 cmyk模仿色 c90m40y20k30。色值 一種 顏色bai指的du是該種顏色在不同的顏色模式zhi中所對應的顏色值。如dao紅色在rgb顏色模式中所對應的值就是255,0,0 綠色在rgb顏色模式中所對應的值就是0,255,0 藍色在rgb顏色模式中所對應...

金黃色的CMYK值是多少金色的色值是多少金黃色的漸變色值是多少急

cmyk值 c 0 m 20 y 60 k 20cmyk簡介 印刷四色模式是彩色印刷時採用的一種套色模式,利用色料的三原色混色原理,加上黑色油墨,共計四種顏色混合疊加,形成所謂 全綵印刷 四種標準顏色 c cyan 青色,又稱為天藍色或是湛藍。m magenta 品紅色,又稱為洋紅色。y yello...

酒紅色的色值是多少,酒紅色的標準色值是多少?

酒紅色的rgb色值是r240,g65,b85 cmyk色值是c0,c90,y60,k0。酒紅色指飲酒後面部或眼睛呈現的紅色。酒紅色是深紅色有一點發紫,比較絢麗,常用在服裝,染髮等地方。酒紅色的調法有紅色 黑色 粉絲 紫色 褐色 白色 粉色。融合了紅色熱情與黑色壓抑的酒紅色在宗教中常被視為高貴的色彩,...