Ⅰ java byte 二進制
byte a = 1111; // 這樣定義,這個 1111 到底是二進制,還是10進制,還是 X 進制,系統是不知道的。。
在這里,1111 默認被當作 10 進制。。
Java 不支持顯式輸入二進制,默認為 10 進制,0 開頭為8進制,比如 01111,0x開頭為16 進制,比如 0x11。。
byte 數據類型所表示的范圍為 -128~127,已經超出范圍了。。
Ⅱ java里怎樣把文件轉換成二進制
轉換文件成為二進制數據並保存的Java代碼:
取出數據並還原文件到本地的java代碼:
[java]view plain//讀取資料庫二進制文件
publicvoidreaderJpg()throwsSQLException
{
connection=connectionManager.getconn();//自己連接自己的資料庫
StringsqlString="selectimagesfromsave_imagewhereid=4";//從資料庫中讀出要還原文件的二進制碼,這里我讀的是自己的資料庫id為4的文件
Filefile=newFile("E:\1.jpg");//本地生成的文件
if(!file.exists())
{
try{
file.createNewFile();
}catch(Exceptione){
e.printStackTrace();
}
}
try{
byte[]Buffer=newbyte[4096*5];
statement=connection.prepareStatement(sqlString);
resultSet=statement.executeQuery();
if(resultSet.next())
{
FileOutputStreamoutputStream=newFileOutputStream(file);
InputStreamiStream=resultSet.getBinaryStream("images");//去欄位用getBinaryStream()
intsize=0;
while((size=iStream.read(Buffer))!=-1)
{
System.out.println(size);
outputStream.write(Buffer,0,size);
}
}
}catch(Exceptione){
e.printStackTrace();
}
}
Ⅲ java如何將BYTE型數轉化為八位二進制,及如何將八位二進制數轉化為Byte型的。
使用八進製表示整數,只要在十進制數前加一個0就可以了,比如12的八進制就i=012,這樣在輸出時System.out.println("i=" +i)就是i=10
Ⅳ JAVA中byte類型的介紹。 謝謝
1、在Java中,byte類型的數據是8位帶符號的二進制數。最高位表示正負,0為正,1為負。
2、java byte是做為最小的數字來處理的,因此它的值域被定義為-128~127,也就是signed byte。
3、正數的最高位都是 0 ,正數的值就是二進製表示的值。
4、負數的最高位都是 1 ,負數的值是 取反後加一 然後加個負號得到的值。
(4)javabyte轉二進制擴展閱讀
1、java基本數據類型
JAVA中一共有八種基本數據類型,分別是byte、short、int、long、float、double、char、boolean。
2、java各數據類型取值范圍
byte,整型,1個位元組,范圍:-2的7次方 ~ 2的7次方-1;
short,整型,2個位元組,范圍:-2的15次方 ~ 2的15次方-1;
int,整型,4個位元組,范圍:-2的31次方 ~ 2的31次方-1;
long,整型,8個位元組,范圍:-2的63次方 ~ 2的63次方-1;
float,浮點型,4個位元組,范圍:3.402823e+38 ~ 1.401298e-45;
double,浮點型,8個位元組,范圍:1.797693e+308~ 4.9000000e-324;
char,文本型,2個位元組,范圍:0~2的16次方-1;
boolean,布爾型,1個位元組,范圍:true/false;
參考資料
網路-java字元型
Ⅳ java中二進制怎麼表示
二進制是計算技術中廣泛採用的一種數制。二進制數據是用0和1兩個數碼來表示的數。它的基數為2,進位規則是「逢二進一」,借位規則是「借一當二」,由18世紀德國數理哲學大師萊布尼茲發現。當前的計算機系統使用的基本上是二進制系統,數據在計算機中主要是以補碼的形式存儲的。計算機中的二進制則是一個非常微小的開關,用「開」來表示1,「關」來表示0。
1、Java中定義兩個數,然後分別列印出它們的二進製表示:
System.out.println("Java二進制7: "+Integer.toBinaryString(7));
System.out.println("Java二進制-7: "+Integer.toBinaryString(-7));
輸出:
Java二進制7:
111
Java二進制-7:
可以看到Java中對於數的表示屬於有符號的,那麼這個是怎麼來的?
7好辦,直接是111
-7轉化二進制的過程:
(1)把-7轉化成7,二進制是
111
(2)Java中對於不滿32位的int二進制自動補齊,所以變成了
(29個0)111
(3)然後取反
(29個1)000
(4)然後加1
(29個1)001
這就是-7的整個轉化過程,那麼現在有一個問題,如果有一個文本文件,每一行有八位二進制,表示的范圍是(0~255),也就是用一個位元組表示的無符號整數,如果現在要把這些二進制轉化成整數存到文件里應該怎麼做?
文件:
line1
11111110
(254)
line2
00000000
(0)
假設用Java讀進了第一行,那麼直接列印出來的值是-2,不符合要求,這時讓-2變254有兩種辦法:
(1)用Java自帶的方法,Byte.toUnsignedInt((byte)
-2)(ps.-2的二進製表示就是line1),這樣列印出來的就是254了
System.out.println(Byte.toUnsignedInt((byte) -2));
輸出:254
第二種方法的原理:
Java中-2的二進製表示:(這個二進制的後八位就是line1,可以直接列印的話Java把其當做了負數
-2)
Java中255的二進製表示:(24個『0』,8個『1』)
做與後變為:
這樣做與後表示的數就是正數了
254。可以想一下,假設每一行用2個位元組表示一個無符號數,那麼可以把每一行變成正整數用方法2怎麼做?
2.Java中的>>和>>>
'>>'
算術右移,向右移左邊補符號位
'>>>'
邏輯右移,向右移左邊補0
System.out.println("Java二進制-7: "+Integer.toBinaryString(-7));
System.out.println("-7>>2: "+Integer.toBinaryString(-7>>2));
System.out.println("-7>>>2: "+Integer.toBinaryString(-7>>>2));輸出:
Java二進制-7:
-7>>2:
-7>>>2: //正常應該這樣(00)左邊的兩個0不顯示
Ⅵ Java 十進制轉二進制!要求如下: Byte Short Int Long 跟據不同的bits數轉二進制!如:50轉"00110010"
int i=50;
System.out.println(Integer.toBinaryString(i));
Ⅶ java怎麼把一個byte變數按二進制輸出
/**
* 將byte轉換為一個長度為8的byte數組,數組每個值代表bit
*/
public static byte[] getBooleanArray(byte b) {
byte[] array = new byte[8];
for (int i = 7; i >= 0; i--) {
array[i] = (byte)(b & 1);
b = (byte) (b >> 1);
}
return array;
}
/**
* 把byte轉為字元串的bit
*/
public static String byteToBit(byte b) {
return ""
+ (byte) ((b >> 7) & 0x1) + (byte) ((b >> 6) & 0x1)
+ (byte) ((b >> 5) & 0x1) + (byte) ((b >> 4) & 0x1)
+ (byte) ((b >> 3) & 0x1) + (byte) ((b >> 2) & 0x1)
+ (byte) ((b >> 1) & 0x1) + (byte) ((b >> 0) & 0x1);
}
使用:
byte b = 0x35; // 0011 0101
// 輸出 [0, 0, 1, 1, 0, 1, 0, 1]
System.out.println(Arrays.toString(getBooleanArray(b)));
// 輸出 00110101
System.out.println(byteToBit(b));
// JDK自帶的方法,會忽略前面的 0
System.out.println(Integer.toBinaryString(0x35));
Ⅷ java怎樣把字元串轉化為二進制形式
importjava.io.UnsupportedEncodingException;
importjava.util.Arrays;
/*
*String(byte[]bytes,StringcharsetName):通過指定的字元集解碼位元組數組
*byte[]getBytes(StringcharsetName):使用指定的字元集合把字元串編碼為位元組數組
*
*編碼:把看得懂的變成看不懂的
*String--byte[]
*
*解碼:把看不懂的變成看得懂的
*byte[]--String
*
*舉例:諜戰片(發電報,接電報)
*
*碼表:小本子
* 字元 數值
*
*要發送一段文字:
* 今天晚上在老地方見
*
* 發送端:今--數值--二進制--發出去
* 接收端:接收--二進制--十進制--數值--字元--今
*
* 今天晚上在老地方見
*
*編碼問題簡單,只要編碼解碼的格式是一致的。
*/
publicclassStringDemo{
publicstaticvoidmain(String[]args){
Strings="你好";
//String--byte[]
byte[]bys=s.getBytes();//[-60,-29,-70,-61]
//byte[]bys=s.getBytes("GBK");//[-60,-29,-70,-61]
//byte[]bys=s.getBytes("UTF-8");//[-28,-67,-96,-27,-91,-67]
System.out.println(Arrays.toString(bys));
//byte[]--String
Stringss=newString(bys);//你好
//Stringss=newString(bys,"GBK");//你好
//Stringss=newString(bys,"UTF-8");//???
System.out.println(ss);
}
}
Ⅸ 在java中怎麼把位元組數組轉換成二進制字元串
可以使用Integer類的toBinaryString方法,例如:
bytea=0x45;
StringbinStr=Integer.toBinaryString(a).
API中toBinaryString的解釋:
toBinaryString
public static String toBinaryString(inti)
以二進制(基數 2)無符號整數形式返回一個整數參數的字元串表示形式。
如果參數為負,該無符號整數值為參數加上 232;否則等於該參數。將該值轉換為二進制(基數 2)形式的無前導0的 ASCII 數字字元串。如果無符號數的大小為零,則用一個零字元'0'(』u0030』) 表示它;否則,無符號數大小的表示形式中的第一個字元將不是零字元。字元'0'('u0030') 和'1'('u0031') 被用作二進制數字。
參數:
i- 要轉換為字元串的整數。
返回:
用二進制(基數 2)參數表示的無符號整數值的字元串表示形式。
從以下版本開始:
JDK1.0.2