您好,登錄后才能下訂單哦!
這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何在java中使用Byte類,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
Java是一門面向?qū)ο缶幊陶Z(yǔ)言,可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序。
包裝類是一個(gè)常量類,可實(shí)例化 (意義:幫助對(duì)應(yīng)的數(shù)據(jù)類型進(jìn)行數(shù)據(jù)類型)
java數(shù)據(jù)類型包括內(nèi)置數(shù)據(jù)類型和引用數(shù)據(jù)類型
內(nèi)置數(shù)據(jù)類型 :含6中數(shù)字類型(四個(gè)整數(shù)型,兩個(gè)浮點(diǎn)型),一種字符類型,還有布爾類型
byte:數(shù)據(jù)類型占用1個(gè)字節(jié)=8bit,以二進(jìn)制補(bǔ)碼表示的整數(shù)
取值范圍:默認(rèn)值為0,最小值為-128(-2^7);最大值是127(2^7-1)
數(shù)據(jù)類型 | 關(guān)鍵字 | 內(nèi)存中占用字節(jié)數(shù) | 取值范圍 | 默認(rèn)值 |
布爾型 | boolean | 1 | true/false | FALSE |
字節(jié)型 | byte | 1 | -128~127 | 0 |
短整型 | short | 2 | -2^15~2^15-1 | 0 |
整型 | int | 4 | -2^31~2^31-1 | 0 |
長(zhǎng)整型 | long | 8 | -2^63~2^63-1 | 0 |
字符型 | char | 2 | 0~2^16-1 | '\u000' |
單精度浮點(diǎn)型 | float | 4 | 1.4013E-45~3.4028E+38 | 0.0F |
雙精度浮點(diǎn)型 | double | 8 | 4.9E-324~1.7977E+308 | 0.0D |
用途:byte類型用在大型數(shù)組中節(jié)約空間,主要代替整數(shù),因byte變量占用內(nèi)存的空間只有int類型的1/4;不足是這個(gè)數(shù)取值范圍大,byte不能全部替代
A.構(gòu)造方法
public Byte(byte value) public Byte(String s)
B.普通方法+類方法(對(duì)數(shù)據(jù)類型做轉(zhuǎn)換)
piublic byte byteValue() public short shortValue() public int intVlaue() public long longValue() public float floatValue() public double doubleValue() public String toString() public static String toString(byte b)
包裝類和基本數(shù)據(jù)類型的對(duì)象關(guān)系
注:常量類是否可以被實(shí)例化主要看構(gòu)造方法
package com.youceedu.test.wrapper; public class TestByte { public static void main(String[] args) { // TODO Auto-generated method stub byte a = 9; byte b = -7; String result = Byte.toString(a); Byte c = new Byte((byte) 9); System.out.println(c.floatValue()); System.out.println(result+b); } }
補(bǔ)充:java的byte數(shù)據(jù)類型總結(jié)||二進(jìn)制的原碼、反碼和補(bǔ)碼
原碼就是二進(jìn)制定點(diǎn)表示法,即最高位為符號(hào)位,“0”表示正,“1”表示負(fù),其余位表示數(shù)值的大小。
反碼表示法規(guī)定:正數(shù)的反碼與其原碼相同;負(fù)數(shù)的反碼是對(duì)其原碼逐位取反,但符號(hào)位除外。
補(bǔ)碼表示法規(guī)定:正數(shù)的補(bǔ)碼與其原碼相同;負(fù)數(shù)的補(bǔ)碼是在其反碼的末位加1。
首位表示符號(hào)位,原碼、反碼和補(bǔ)碼都是本身。
如何計(jì)算負(fù)數(shù)在計(jì)算機(jī)中的二進(jìn)制(即它的補(bǔ)碼)?
首先對(duì)負(fù)數(shù)的絕對(duì)值取反,然后+1得到負(fù)數(shù)的補(bǔ)碼。
例如:byte a=-5
-5的絕對(duì)值=5 5的二進(jìn)制表示是 0000 0101 取反得到 1111 1010 +1運(yùn)算得到 1111 1011 ,那么1111 1011就是-5的補(bǔ)碼。
也可以這樣,用原碼計(jì)算
例如:byte a=-5 原碼表示 1000 0101
計(jì)算其反碼為 1111 1010
計(jì)算其補(bǔ)碼為 1111 1011
所以 -5在計(jì)算機(jī)中表示為1111 1011
byte 表示一個(gè)字節(jié),8bit,其中最高位是符號(hào)位。因此,最大值為 0111 1111,即127;最小值是負(fù)數(shù)為 1000 0000(規(guī)定)【其他數(shù)據(jù)類型的最大最小值也可以這樣以此類推】。在計(jì)算機(jī)中二進(jìn)制都是以補(bǔ)碼的形式表示的,我們也可以這樣來(lái)理解,為什么最小是-128
最小負(fù)數(shù)補(bǔ)碼表示為:1000 0000
由補(bǔ)碼計(jì)算原碼:
1000 0000 作-1 運(yùn)算 得到 0111 1111,取反 1000 0000 因?yàn)樨?fù)數(shù)的補(bǔ)碼是其絕對(duì)值取反,即10000000為最小負(fù)數(shù)的絕對(duì)值,而10000000的十進(jìn)制表示是128,所以最小負(fù)數(shù)是-128
標(biāo)準(zhǔn)ASCII 碼也叫基礎(chǔ)ASCII碼,使用7 位二進(jìn)制數(shù)(剩下的1位二進(jìn)制為0)來(lái)表示所有的大寫和小寫字母,數(shù)字0 到9、標(biāo)點(diǎn)符號(hào), 以及在美式英語(yǔ)中使用的特殊控制字符。
ASCII碼表示的范圍是0~127 剛好byte類型可以覆蓋到。因此byte類型和ASCII可以互相轉(zhuǎn)換??梢愿鶕?jù)ASCII對(duì)照表進(jìn)行查看http://tool.oschina.net/commons?type=4
當(dāng)byte類型的變量的值實(shí)時(shí)是在''單引號(hào)里面的時(shí)候,該byte變量的值表示的是ASCII碼,可以通過(guò)ASCII對(duì)照表查看其真實(shí)的數(shù)值。
比如:
public class ByteTest { public static void main(String args[]) { byte a = 'a'; byte b = 'B'; byte c = '4'; System.out.println("a=" + a); System.out.println("b=" + b); System.out.println("c=" + c); } }
輸出:
a=97 b=66 c=52
byte->int 因?yàn)閎yte是8位,而int是32位,當(dāng)byte類型轉(zhuǎn)換為int類型的時(shí)候,會(huì)自動(dòng)用符號(hào)位補(bǔ)足高位。例如 -5 1111 1011 轉(zhuǎn)為int 類型會(huì)表示為 1111 1111 1111 1111 1111 1111 1111 1011 其表示的十進(jìn)制的數(shù)值不變。
有的時(shí)候,我們只想保留二進(jìn)制的補(bǔ)碼形式,我們可以用byte&0xff。0xff是十六進(jìn)制,默認(rèn)是int類型,其二進(jìn)制表示為 0000 0000 0000 0000 0000 0000 1111 1111 將byte類型的數(shù)值跟0xff作&操作,可以將高24位變?yōu)?,保留低8位。當(dāng)然對(duì)應(yīng)的十進(jìn)制數(shù)也發(fā)生了變化。(相當(dāng)于將byte變成無(wú)符號(hào)int類型)
例如:byte a=-5 ((int)-5)&0xff
1111 1111 1111 1111 1111 1111 1111 1011 & 0000 0000 0000 0000 0000 0000 1111 1111 = 0000 0000 0000 0000 0000 0000 1111 1011
例如:
int a=234 byte b=(byte)a -->得到b=-22 因?yàn)?34已經(jīng)超出了byte類型的表示范圍,強(qiáng)轉(zhuǎn)會(huì)直接丟棄高位,保留低8位。
int類型的234的二進(jìn)制表示為:1110 1010【高24位全是0】 強(qiáng)轉(zhuǎn)為byte類型,舍棄高24位得到1110 1010 ,第一位為符號(hào)位1,得到一個(gè)負(fù)數(shù)-22。
上述就是小編為大家分享的如何在java中使用Byte類了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。