[英]Convert array Byte To Binary
請任何人可以幫助我將ascciiText轉換為二進制,例如49具有二進制00110001,而48是00110010,以此類推。
import java.lang.String;
import java.util.Scanner;
import java.lang.*;
import java.io.*;
import java.util.*;
public class encrption {
public static void main(String[] args){
// INPUT: KeyText (StrKey).
// OUTPUT: Ciphertext (ConcatenatedData).
//String ConcatenatedData;
// Read data from user.
Scanner in = new Scanner(System.in);
System.out.println("Enter Your PlainText");
String StrValue = in.nextLine();
System.out.println("Enter Your KeyText ");
String StrKey = in.nextLine();
// Print the Concatenated Data.
String ConcatenatedData = StrKey.concat(StrValue);
System.out.println("the Concatenated Data is :"+ConcatenatedData);
// Convering the Concatenated data to Ascii data.
try {
byte[] asciiText = ConcatenatedData.getBytes("US-ASCII");
System.out.println(Arrays.toString(asciiText));
}
catch (java.io.UnsupportedEncodingException e)
{ e.printStackTrace(); }
請任何人可以幫助我將ascciiText系列轉換為二進制,例如49具有二進制00110001,而48是00110010,依此類推
配置:加密-JDK版本1.8.0_40
輸入您的PlainText歡迎詞輸入您的KeyText 123級聯數據是:123welcome [49、50、51、119、101、108、99、111、109、101]
流程完成。
由於byte
沒有為此提供任何方法,因此您必須使用Integer
:
byte[] b = ...;//you're array
String binStr = "";
for(byte v : b)
binStr += Integer.toBinaryString(v);
或者,您可以編寫自己的方法。 也不會太困難:
String toBinary(byte b){
char[] binArr = new char[8];
//if a bit is 1, emplace '1' at the respective position in the array, else 0
for(int i = 0 ; i < 8 ; i++)
binArr[7 - i] = (b & (1 << i)) == 0 ? '0' : '1';
return new String(binArr);
}
Simialr在@Paul的解決方案上寫了另一種方法。
String toBinary(byte b) {
StringBuilder sb = new StringBuilder(8);
for(int i = 7 ; i >= 0 ; i--)
sb.append((char) ('0' + ((b >> i) & 1));
return sb.toString();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.