㈠ 在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
㈡ 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怎麼將二進制轉化成字元串
import java.io.UnsupportedEncodingException;
import java.util.Arrays;
/*
* String(byte[] bytes, String charsetName):通過指定的字元集解碼位元組數組
* byte[] getBytes(String charsetName):使用指定的字元集合把字元串編碼為位元組數組
*
* 編碼:把看得懂的變成看不懂的
* String -- byte[]
*
* 解碼:把看不懂的變成看得懂的
* byte[] -- String
*
* 舉例:諜戰片(發電報,接電報)
*
* 碼表:小本子
* 字元 數值
*
* 要發送一段文字:
* 今天晚上在老地方見
*
* 發送端:今 -- 數值 -- 二進制 -- 發出去
* 接收端:接收 -- 二進制 -- 十進制 -- 數值 -- 字元 -- 今
*
* 今天晚上在老地方見
*
* 編碼問題簡單,只要編碼解碼的格式是一致的。
*/
public class StringDemo {
public static void main(String[] args) throws UnsupportedEncodingException {
String s = "你好";
// 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
String ss = new String(bys); // 你好
// String ss = new String(bys, "GBK"); // 你好
// String ss = new String(bys, "UTF-8"); // ???
System.out.println(ss);
}
}
㈣ Java byte 二進制
二進制是由機器進行識別的,你這樣寫cpu只能認為它是十進制數,而且一個byte只有一個位元組,1111已經超過了255。如果代碼是這樣:
byte b = (byte) 255;
System.out.println(b);
系統輸出:-1,之所以是-1,因為255的二進制是11111111,計算機中是用補碼表示數字的,首位是1的話它認為是負數,而負數的絕對值等於其二進制碼的反碼加1,正是-1。如果:
byte b = (byte) 256;
System.out.println(b);
它又輸出:0。因為256的二進制是100000000,截取後8位是0。
而十進制的1111的二進制是10001010111,截取後8位是1010111,轉化為10進制就是87,因此如果代碼是:
byte b = (byte) 1111;
System.out.println(b);
輸出的結果是:
87。
㈤ java中怎樣將字元串轉換成二進制
哦
java.lang.Integer這個API包中有進制轉換的函數
public static String toBinaryString(int i)
public static String toHexString(int i)
public static String toOctalString(int i)
這3個函數都可以將十進制的整數轉換成二、一六、八進制數
不過轉換後的結果都是字元串的形式
既然得到的是字元串
我想你當然就可以利用string.sub(x-1,x)的方法來判斷該x位的數等於0還是1
之後再把x返回出來,那麼就知道結果了
㈥ java二進制的數字與字元串互轉
現成的方法,多看api
㈦ 用Java將byte整型數值轉化成二進制輸出調錯
改正的程序如下:
public
class
Exercise4_5
{
/**
*
將整型轉化成二進制形式輸出
*
@param
n
*/
public
static
void
change(int
n){
int
length=0;
int
=n;
while(
>
0){
//求二進制有效數字的長度
length++;
=>>1;
}
System.out.println("length:"+length+"
n
is
"+n);
for(int
i=length;i>0;i--){//從高位到低位輸出二進制的每一位
if((n&(1<<(i-1)))>0){//2^length-1&n
System.out.print(1);
}
else
System.out.print(0);
}
System.out.println();
}
/**
*
@param
args
*/
public
static
void
main(String[]
args)
{
//
TODO
Auto-generated
method
stub
int
a=(int)0xAA;
int
b=(int)0x55;
//測試:
/*System.out.println(Integer.toBinaryString(a));
System.out.println(Integer.toBinaryString(b));*/
change(a);
change(b);
}
}
㈧ byte[]數組轉二進制字元串
可以通過自定義方法來接收位元組數組,比如將1轉換為00000001,2為00000010,依此類推。
㈨ java中如何將字元串轉換為二進制數
java.lang.Integer這個API包中有進制轉換的函數
public static String toBinaryString(int i)
public static String toHexString(int i)
public static String toOctalString(int i)
這3個函數都可以將十進制的整數轉換成二、一六、八進制數
不過轉換後的結果都是字元串的形式
㈩ 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);
}
}