當前位置:首頁 » 編程語言 » javabytetoshort

javabytetoshort

發布時間: 2022-04-25 02:01:44

java變數類型有哪些各自特點

朋友你這樣的問題還是多看看書比較好啊 系統看看 給你推薦一本《JAVA核心》

下面是我以前整理的文章 你看看 也許能夠幫助你

Java的數據類型分為三大類,即布爾型、字元型和數值型,而其中數值型又分為整型和浮點型;相對於數據類型,Java的變數類型為布爾型boolean;字元型char;整型byte、short、int、long;浮點型float、double。其中四種整型變數和兩種浮點型變數分別對應於不同的精度和范圍。此外,我們還經常用到兩種類變數,即String和Date。對於這些變數類型之間的相互轉換在我們編程中經常要用到,以下是具體的說明。
一、 整型、實型、字元型變數中的相互轉換
在Java中整型、實型、字元型被視為同一類數據,這些類型由低級到高級分別為(byte,short,char)——int——long——float——double,低級變數可以直接轉換為高級變數,例如,下面的語句可以在Java中直接通過:
byte b;
int i=b;
而將高級變數轉換為低級變數時,情況會復雜一些,你可以使用強制類型轉換。即你必須採用下面這種語句格式:
int i;
byte b=(byte)i;
可以想像,這種轉換肯定可能會導致溢出或精度的下降,因此我們並不推薦使用這種轉換。

二、Java的包裝類
在我們討論其它變數類型之間的相互轉換時,我們需要了解一下Java的包裝類,所謂包裝類,就是可以直接將簡單類型的變數表示為一個類,在執行變數類型的相互轉換時,我們會大量使用這些包裝類。Java共有六個包裝類,分別是Boolean、Character、Integer、Long、Float和Double,從字面上我們就可以看出它們分別對應於 boolean、char、int、long、float和double。而String和Date本身就是類。所以也就不存在什麼包裝類的概念了。

三、簡單類型變數和包裝類之間的相互轉換
簡單類型的變數轉換為相應的包裝類,可以利用包裝類的構造函數。即:
Boolean(boolean value)、Character(char value)、Integer(int value)、Long(long value)、Float(float value)、Double(double value)
而在各個包裝類中,總有形為××Value()的方法,來得到其對應的簡單類型數據。利用這種方法,也可以實現不同數值型變數間的轉換,例如,對於一個雙精度實型類,intValue()可以得到其對應的整型變數,而doubleValue()可以得到其對應的雙精度實型變數。

四、String類和其它數據類型的相互轉換
對於上面的這些包裝類,除了Character以外,都有可以直接使用字元串參數的構造函數,這也就使得我們將String類轉換為這些數據類型變得相當之簡單,即:
Boolean(String s)、Integer(String s)、Long(String s)、Float(String s)、Double(String s)
而將String類轉換為Date類也可以使用這樣的構造函數:Date(String s)
現在我們還剩下一個字元型變數,事實上String類可以理解為一個char型數組,因此我們可以在String類中找到這樣的方法來實現這種轉換:charAt(int index)可以得到String類中某一位置上的字元,toCharArray()更可以將整個String類轉換成一個char的數組。
對於所有的包裝類都存在一個名為toString()的方法可以將其轉換成對應的String類,而對於整型類和長整型類,還可以使用toBinaryString(int i)、toHexString(int i)、toOctalString(int i)分別以二進制、十六進制和八進制的形式進行到String類的轉換。

五、將字元型直接做為數值轉換為其它數據類型
將字元型變數轉換為數值型變數實際上有兩種對應關系,在我們在第一部分所說的那種轉換中,實際上是將其轉換成對應的ASCII碼,但是我們有時還需要另一種轉換關系,例如,『1』就是指的數值1,而不是其ASCII碼,對於這種轉換,我們可以使用Character的getNumericValue(char ch)方法。

六、Date類與其它數據類型的相互轉換
整型和Date類之間並不存在直接的對應關系,只是你可以使用int型為分別表示年、月、日、時、分、秒,這樣就在兩者之間建立了一個對應關系,在作這種轉換時,你可以使用Date類構造函數的三種形式:
Date(int year, int month, int date):以int型表示年、月、日
Date(int year, int month, int date, int hrs, int min):以int型表示年、月、日、時、分
Date(int year, int month, int date, int hrs, int min, int sec):以int型表示年、月、日、時、分、秒
在長整型和Date類之間有一個很有趣的對應關系,就是將一個時間表示為距離格林尼治標准時間1970年1月1日0時0分0秒的毫秒數。對於這種對應關系,Date類也有其相應的構造函數:Date(long date)
獲取Date類中的年、月、日、時、分、秒以及星期你可以使用Date類的getYear()、getMonth()、getDate()、getHours()、getMinutes()、getSeconds()、getDay()方法,你也可以將其理解為將Date類轉換成int。
而Date類的getTime()方法可以得到我們前面所說的一個時間對應的長整型數,與包裝類一樣,Date類也有一個toString()方法可以將其轉換為String類。
在Java的數據類型轉換中,你還有一些其它方法可用,但是,上面所介紹的這些方法對於你的實際編程已經足夠了,不是嗎?

以前我也遇到過編碼問題,解決方法是在輸入後放一層過濾器轉碼,輸出時在放一個另一個過濾器,這樣,每當有其他移植時,直接改變過濾器的代碼就OK了。

過濾器代碼如下

public static String SyConvertCode(String tempSql){
if (tempSql==null)
tempSql="";
else
tempSql = tempSql.trim();
String returnString = tempSql;
try{
// byte[] ascii=returnString.getBytes("GBK");
// returnString =new String(ascii,"ISO-8859-1");
byte[] ascii=returnString.getBytes("ISO-8859-1");
returnString =new String(ascii,"GBK");

}catch(Exception e){
e.printStackTrace();
}
return returnString;
}

❷ 一道java簡單的題目

Java中涉及byte、short和char類型的運算操作首先會把這些值轉換為int類型,然後對int類型值進行運算,最後得到int類型的結果 .如果把兩個byte類型值相加,最後會得到一個int類型的結果。如果需要得到byte類型結果,必須將這個int類型的結果顯式轉換為byte類型。

所以,你輸出時,得到會是十進制。如果要byte ,再強轉。想要八進制,它的執行過程也是,bye---int--然後利用Integer.toOctalString() 來轉的。

從byte型到int型無須轉換。深究這些內容無意義。把一些整形中的進制轉換高清楚就好了。

❸ Java 對一個長512位元組的位元組數組byte[],寫入8個int,4個short,3個long

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.text.ParseException;

public class Test {
public static void main(String[] args) throws ParseException, IOException {
ByteArrayOutputStream bos = new ByteArrayOutputStream(512);
DataOutputStream dos = new DataOutputStream(bos);
//寫入8個int
for(int i = 0; i < 8; i++){
dos.writeInt(i);
}
//寫入4個short
for (short i = 0; i < 4;i++){
dos.writeShort(i);
}
//寫入3個long
for(long i = 0 ; i < 3; i++){
dos.writeLong(i);
}
//定義一個定長的數組
byte[] result = new byte[512];
ByteArrayInputStream bas = new ByteArrayInputStream(bos.toByteArray());
//將輸出流中的內容寫到定長數組中
bas.read(result);
dos.close();
bas.close();
//回顯
ByteArrayInputStream bas2 = new ByteArrayInputStream(result);
DataInputStream dis = new DataInputStream(bas2);
//從結果中讀取8個整型
for(int i = 0; i < 8; i++){
System.out.print(dis.readInt() + " ");
}
System.out.println();
//從結果中讀取4個short
for (short i = 0; i < 4;i++){
System.out.print(dis.readShort() + " ");
}
System.out.println();
//讀出3個long
for(long i = 0 ; i < 3; i++){
System.out.print(dis.readLong() + " ");
}
dis.close();
}
}
通過
byte[] result = new byte[512];
ByteArrayInputStream bas = new ByteArrayInputStream(bos.toByteArray());
//將輸出流中的內容寫到定長數組中
bas.read(result);
實現往固定長度的數組中讀入,來固定長度。
而便捷的寫入是通過把ByteArrayOutputStream上面裝飾成DataOutputStream來實現的

❹ 在Java中能接收byte數據的類型有什麼

沒有直接接收的類型,可把byte寫入到ByteArrayOutputStream保存,該類有一個toByteArray()方法,可以獲取已經寫進去的byte

❺ java的+號和數據轉換問題

關於第一問題的回答:

首先,java中基本數據類型:

1 從小類型到大類型. 自動轉換

bytea=1;intb=a;

2 從大類型到小類型, 強制轉換. (因為可能有精度丟失等問題, 強制轉換自己可以先思考先能不能轉換)

inta=1;byteb=(byte)a;
intx=158;bytey=(byte)x;
//byte的范圍是-128~127x超過范圍了,強制轉換得到一個-98
//所以強制轉換前需要思考,會不會超過范圍

其次: 結合題目思考 .java基本數據類型的運算

Java中,對於short, byte, char 比int小的變數類型來說,運算結果會自動轉換為int類型。使用 int 類型作為運算類型

byte a = 1; byte b =2;

所以如果a+b.那麼結果是什麼類型. int類型

如果賦值給byte c = a+b; //運行時就會報錯:Type mismatch: cannot convert from int to byte

解決辦法如下:

第一種:

bytec=(byte)a+b;//確定不超過byte范圍時.強制轉換

第二種

intc=a+b;//int或者long.其實寫成longc,就是把int類型的結果,又自動轉換成了long

第三種

拓展,其實用final修飾後的變數,可以直接進行運算,不用轉換類型

finalbytem=1,n=2;
byteresult=m+n;//就不會出錯,當然還是要注意是否超過byte范圍.

java面對final修飾的基本數據類型的變數m和n,其實當成了直接賦值.就好比

byte result = 1+2;

關於第二個問題的回答:

System.out.println("結果為: "+result); 這里的+號是連接符,把字元串和其他數據連接在一起.

+號運算符.根據情況不同.要麼進行計算,要麼有字元串作為其中的一個操作數時,就進行字元串的連接.

System.out.println("2"+"+"+"3"+"="+(2+3));
//括弧里的優先計算先計算2+3=5,然後把整個字元串.串聯起來
//輸出2+3=5

❻ java 中關於byte數組的賦初值問題

byte short int long
這幾種類型都是java中的整數類型

你肯定對int比較了解,byte和int的區別是int是32位,byte是8位,表示的數字范圍為:-128到+127
所以
第一個byte中元素都沒超過范圍,都以數字顯示。第二個byte數組中的元素都是char類型,char類型是佔16位的,一般轉換為byte是由大到小,需要強制轉換,但這些char並沒有超出byte的范圍,所以不用
在列印時會將char元素轉換成對應的ascii碼,具體你可以去查
toString的確是輸出字母,但'a'是字元,不是字元串,兩個完全不同的概念

字元串+primitive類型就是轉換為字元型的最簡單方法,例:
4+"" 將數字4轉換為字元串4 現在的4不再是數字,而是字元串,懂?

❼ java問題byte a=1,b=1;byte c=a+b;為什麼錯

你所問的這個問題叫「自動類型提升」

在java中,對char, byte和short類型的字元串進行數學演算法操作,比如+,-,>>位移操作,都會引發
自動類型提升,結果將是int類型,a+b的結果是int, 要將int的值賦給byte就必須進行類型強制轉換。

以下這句,是從think in java 3rd中摘出來的,希望對你有幫助。
In char, byte, and short, you can see the effect of promotion with the arithmetic operators. Each arithmetic operation on any of those types proces an int result, which must be explicitly cast back to the original type (a narrowing conversion that might lose information) to assign back to that type.

最後 關於類型的自動提升,java定義若干適用於表達式的類型提升規則:

第一,所有的byte型、short型和char型的值將被提升到int型;
第二,如果一個操作數是long型,計算結果就是long型;
第三,如果一個操作數是float型,計算結果就是float型;
第四,如果一個操作數是double型,計算結果就是double型。

❽ Java 十進制轉二進制!要求如下: Byte Short Int Long 跟據不同的bits數轉二進制!如:50轉"00110010"

int i=50;
System.out.println(Integer.toBinaryString(i));

❾ java中長整型定義

java整型有四種分貝是:byte(1位元組)、short(2位元組)、int(4位元組)、long(8位元組)

0x100080000000超出范圍,其實不是long不能保存這么大,而是這個數是個int型數。它超出的其實是int的范圍(The literal 0x100080000000 of type int is out of range),在整數賦值時。

可以將賦值語言修改如下,指定它的類型為long型就可以了:

long y=0x100080000000l;//

(9)javabytetoshort擴展閱讀

java整形與長整型之間的轉換可以藉助Long類或字串

1、藉助Long類:

int new_a = new Long(a).intValue();

2、藉助字串:

int new_a = Integer.parseInt(String.valueOf(y));

java整形、長整型、浮點型 邊界值:

int型邊界最大值:Integer.MAX_VALUE

int型邊界最小值:Integer.MIN_VALUE

long型邊界最大值:Long.MAX_VALUE

long型邊界最小值:Long.MIN_VALUE

float型邊界最大值:Float.MAX_VALUE

float型邊界最小值:Float.MIN_VALUE


❿ 在java中 如何將得到的String轉換為Short型 急。。

可以用基本數據類型的對象包裝器來轉換。

這在lang包中,系統自動載入。

publicclassZh{

publicstaticvoidmain(String[]args){
//建立String
Stringb="4";
//用基本數據類型的對象包裝器將String轉換為short
Shorta=newShort(b);
//輸出a
System.out.println(a);

}

}

這樣就成功的將String轉換為short,希望能幫到你。

熱點內容
sql數據溢出 發布:2025-05-17 04:55:14 瀏覽:731
java金額 發布:2025-05-17 04:51:48 瀏覽:288
安卓怎麼下應用 發布:2025-05-17 04:46:52 瀏覽:554
演算法健壯性 發布:2025-05-17 04:41:10 瀏覽:856
jquery文件上傳進度條 發布:2025-05-17 04:39:50 瀏覽:221
信息技術腳本模板 發布:2025-05-17 04:39:00 瀏覽:258
寫sql跑 發布:2025-05-17 04:38:58 瀏覽:252
openharmony編譯依賴 發布:2025-05-17 04:32:45 瀏覽:610
什麼叫雙十一配置 發布:2025-05-17 04:14:31 瀏覽:979
翼狀胬肉使用氟尿嘧啶怎麼配置 發布:2025-05-17 04:14:24 瀏覽:976