A. java 16进制字符串转为二进制bit数组
应该用byte型数组
public static String stringToHexString(String strPart) {
String hexString = "";
for (int i = 0; i < strPart.length(); i++) {
int ch = (int) strPart.charAt(i);
String strHex = Integer.toHexString(ch);
hexString = hexString + strHex;
}
return hexString;
}
private static String hexString="0123456789ABCDEF";
/*
* 将字符串编码成16进制数字,适用于所有字符(包括中文)
*/
public static String encode(String str)
{
// 根据默认编码获取字节数组
byte[] bytes=str.getBytes();
StringBuilder sb=new StringBuilder(bytes.length*2);
// 将字节数组中每个字节拆解成2位16进制整数
for(int i=0;i<bytes.length;i++)
{
sb.append(hexString.charAt((bytes[i]&0xf0)>>4));
sb.append(hexString.charAt((bytes[i]&0x0f)>>0));
}
return sb.toString();
}
/*
* 将16进制数字解码成字符串,适用于所有字符(包括中文)
*/
public static String decode(String bytes)
{
ByteArrayOutputStream baos=new ByteArrayOutputStream(bytes.length()/2);
// 将每2位16进制整数组装成一个字节
for(int i=0;i<bytes.length();i+=2)
baos.write((hexString.indexOf(bytes.charAt(i))<<4 |hexString.indexOf(bytes.charAt(i+1))));
return new String(baos.toByteArray());
}
private static byte uniteBytes(byte src0, byte src1) {
byte _b0 = Byte.decode("0x" + new String(new byte[] {src0})).byteValue();
_b0 = (byte) (_b0 << 4);
byte _b1 = Byte.decode("0x" + new String(new byte[] {src1})).byteValue();
byte ret = (byte) (_b0 | _b1);
return ret;
public static byte[] HexString2Bytes(String src)
{
byte[] ret = new byte[6];
byte[] tmp = src.getBytes();
for(int i=0; i<6; ++i )
{
ret[i] = uniteBytes(tmp[i*2], tmp[i*2+1]);
}
return ret;
}
B. java中十六进制怎么转换为2进制
java十六进制转换为2进制示例如下:
publicclassHex2Binary
{
publicstaticvoidmain(String[]args)
{
StringhexString="ABCD";
System.out.println(hexString2binaryString(hexString));
}
(StringhexString)
{
if(hexString==null||hexString.length()%2!=0)
returnnull;
StringbString="",tmp;
for(inti=0;i<hexString.length();i++)
{
tmp="0000"
+Integer.toBinaryString(Integer.parseInt(hexString
.substring(i,i+1),16));
bString+=tmp.substring(tmp.length()-4);
}
returnbString;
}
}
C. 急,急急,跪求java十六进制转换成二进制(要自己写算法),再把得到的二进制数取反后,在转换成十六进制
Java程序:
public class Test29 {
public static void main(String[] args) {
String hex = "12345abcdef67890";
String bin;
bin = Transform.convertHexToBin(hex);
System.out.println(hex + " --> " + bin);
hex = Transform.convertBinToHex(bin);
System.out.println(bin + " --> " + hex);
}
}
class Transform{
private static String[] hexs = new String[]{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
"a", "b", "c", "d", "e", "f"};
private static String[] bins = new String[]{"0000", "0001", "0010", "0011", "0100", "0101",
"0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"};
//将十进制数hex转换为二进制数并返回
public static String convertHexToBin(String hex){
StringBuffer buff = new StringBuffer();
int i;
for(i=0; i<hex.length(); i++){
buff.append(getBin(hex.substring(i,i+1)));
}
return buff.toString();
}
//将二进制数bin转换为十六进制数并返回
public static String convertBinToHex(String bin){
StringBuffer buff = new StringBuffer(bin);
int i;
if(bin.length()%4 != 0){//左补零
for(i=0; i<(4-bin.length()%4); i++){
buff.insert(0, "0");
}
}
bin = buff.toString();
buff = new StringBuffer();
for(i=0; i<bin.length(); i+=4){
buff.append(getHex(bin.substring(i,i+4)));
}
return buff.toString();
}
//返回十六进制数的二进制形式
private static String getBin(String hex){
int i;
for(i=0; i<hexs.length && !hex.toLowerCase().equals(hexs[i]); i++);
return bins[i];
}
//返回二进制数的十六进制形式
private static String getHex(String bin){
int i;
for(i=0; i<bins.length && !bin.equals(bins[i]); i++);
return hexs[i];
}
}
运行测试:
12345abcdef67890 -->
--> 12345abcdef67890
D. 如何用JAVA语言将十六进制数转换成二进制数,并输出
我的思路很简单:
publicclass六转2
{
publicstaticvoidmain(String[]args)
{
System.out.println(" ==========16转二进制========== ");
init();
}//初始化!
privatestaticvoidinit()
{
//字符串形式的:16进制!
Strings="ACCC";
//字符串形式十进制--作为桥梁!
intsint=Integer.valueOf(s,16);
//十进制在转换成二进制的字符串形式输出!
Stringbin=Integer.toBinaryString(sint);
//输出!
System.out.println(bin);
}
}
E. 急!!!!!!!!!!!!!~~~~~~~~~~~~~求2进制转16进制的java程序
有现成的,你告诉我邮箱,我发给你
已经发到你邮箱,请查收,100426,15:39
F. Java怎么用整数转换二进制跟16进制,方法简单点,谢谢
这太简单了
toBinaryString(int i)
以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。
toHexString(int i)
以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。
直接调用这两个方法就可以了。
G. 二进制转换成16进制 java string
如果使用jdk提供的方法,示例代码如下:
String str="11111111"; //要转化的二进制码
int i=Integer.parseInt(str,2); //转成10进制
String hex=Integer.toHexString(i); //转成16进制
System.out.println(hex);
H. Java 二进制转换16进制
import java.util.Scanner;
public class Binary2Hex {
private static String hexStr = "0123456789ABCDEF";
/**
*
* @param bytes
* @return 将二进制转换为十六进制字符输出
*/
public static String BinaryToHexString(byte[] bytes){
String result = "";
String hex = "";
for(int i=0;i<bytes.length;i++){
//字节高4位
hex = String.valueOf(hexStr.charAt((bytes[i]&0xF0)>>4));
//字节低4位
hex += String.valueOf(hexStr.charAt(bytes[i]&0x0F));
result +=hex;
}
return result;
}
public static void main(String[] args) {
Scanner sca = new Scanner(System.in);
boolean flag = true;
while (flag) {
System.out.print("请输入一个二进制字符串:");
String str = sca.next();
System.out.println();
System.out.println("您输入的是字符串的十六进制为:"+BinaryToHexString(str.getBytes()));
System.out.print("是否继续转化(如果不继续请输入“exit”,继续的话输入任意字符):");
String _str = sca.next();
if (_str.equalsIgnoreCase("exit")) {
flag = false;
}
}
}
}
I. JAVA,简单实现16进制转2进制的代码问题
16进制转2机制,可以直接转不用先转10进制
暂且按整形计算,四个字节
int a=0x10;
byte[] byte=new byte[4]
for(int i=0;i<byte.length;i++){
byte[i]=(a>i*8)&0xFF;//一个字节8位
}
这个byte就是二进制