`
381573578
  • 浏览: 72193 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

java字符串与二进制的转换

    博客分类:
  • java
阅读更多

 

public class StrBinaryTurn {
	// 将Unicode字符串转换成bool型数组
	public boolean[] StrToBool(String input) {
		boolean[] output = Binstr16ToBool(BinstrToBinstr16(StrToBinstr(input)));
		return output;
	}

	// 将bool型数组转换成Unicode字符串
	public String BoolToStr(boolean[] input) {
		String output = BinstrToStr(Binstr16ToBinstr(BoolToBinstr16(input)));
		return output;
	}

	// 将字符串转换成二进制字符串,以空格相隔
	private String StrToBinstr(String str) {
		char[] strChar = str.toCharArray();
		String result = "";
		for (int i = 0; i < strChar.length; i++) {
			result += Integer.toBinaryString(strChar[i]) + " ";
		}
		return result;
	}

	// 将二进制字符串转换成Unicode字符串
	private String BinstrToStr(String binStr) {
		String[] tempStr = StrToStrArray(binStr);
		char[] tempChar = new char[tempStr.length];
		for (int i = 0; i < tempStr.length; i++) {
			tempChar[i] = BinstrToChar(tempStr[i]);
		}
		return String.valueOf(tempChar);
	}

	// 将二进制字符串格式化成全16位带空格的Binstr
	private String BinstrToBinstr16(String input) {
		StringBuffer output = new StringBuffer();
		String[] tempStr = StrToStrArray(input);
		for (int i = 0; i < tempStr.length; i++) {
			for (int j = 16 - tempStr[i].length(); j > 0; j--)
				output.append('0');
			output.append(tempStr[i] + " ");
		}
		return output.toString();
	}

	// 将全16位带空格的Binstr转化成去0前缀的带空格Binstr
	private String Binstr16ToBinstr(String input) {
		StringBuffer output = new StringBuffer();
		String[] tempStr = StrToStrArray(input);
		for (int i = 0; i < tempStr.length; i++) {
			for (int j = 0; j < 16; j++) {
				if (tempStr[i].charAt(j) == '1') {
					output.append(tempStr[i].substring(j) + " ");
					break;
				}
				if (j == 15 && tempStr[i].charAt(j) == '0')
					output.append("0" + " ");
			}
		}
		return output.toString();
	}

	// 二进制字串转化为boolean型数组 输入16位有空格的Binstr
	private boolean[] Binstr16ToBool(String input) {
		String[] tempStr = StrToStrArray(input);
		boolean[] output = new boolean[tempStr.length * 16];
		for (int i = 0, j = 0; i < input.length(); i++, j++)
			if (input.charAt(i) == '1')
				output[j] = true;
			else if (input.charAt(i) == '0')
				output[j] = false;
			else
				j--;
		return output;
	}

	// boolean型数组转化为二进制字串 返回带0前缀16位有空格的Binstr
	private String BoolToBinstr16(boolean[] input) {
		StringBuffer output = new StringBuffer();
		for (int i = 0; i < input.length; i++) {
			if (input[i])
				output.append('1');
			else
				output.append('0');
			if ((i + 1) % 16 == 0)
				output.append(' ');
		}
		output.append(' ');
		return output.toString();
	}

	// 将二进制字符串转换为char
	private char BinstrToChar(String binStr) {
		int[] temp = BinstrToIntArray(binStr);
		int sum = 0;
		for (int i = 0; i < temp.length; i++) {
			sum += temp[temp.length - 1 - i] << i;
		}
		return (char) sum;
	}

	// 将初始二进制字符串转换成字符串数组,以空格相隔
	private String[] StrToStrArray(String str) {
		return str.split(" ");
	}

	// 将二进制字符串转换成int数组
	private int[] BinstrToIntArray(String binStr) {
		char[] temp = binStr.toCharArray();
		int[] result = new int[temp.length];
		for (int i = 0; i < temp.length; i++) {
			result[i] = temp[i] - 48;
		}
		return result;
	}

}
 
 
分享到:
评论

相关推荐

    android字符串和16进制转换

    在Android开发中,理解和操作字符串以及16进制数值是至关重要的技能,尤其是在处理数据传输、存储或解析二进制数据时。这篇文章将深入探讨如何在Android平台上进行字符串与16进制之间的转换。 首先,我们要明白...

    java String 与各种进制字符之间的转换

    在Java编程语言中,String类是处理文本字符串的核心类,而与各种进制字符之间的转换是常见的编程需求。本文将详细探讨Java中如何进行String与二进制、八进制、十进制以及十六进制之间的转换。 首先,我们要了解进制...

    Base16 java字符串与十六进制互转 js字符串与十六进制互转

    这里我们将深入探讨“Base16”(也称为Hex)编码,以及Java和JavaScript中如何进行字符串与十六进制之间的转换。 Base16是一种简单的二进制到文本的编码方式,它将每个八位字节表示为两个十六进制数字。这种编码...

    java实现字符转换成十六进制的ASCII码

    在Java编程语言中,将字符转换为十六进制表示的ASCII码是一项常见的任务,尤其是在处理字符串数据时。本文将深入探讨如何实现这个功能,并通过一个具体的示例代码`StringToAscii.java`进行演示。 首先,我们需要...

    java权限设置,和java处理字符和二进制的转换

    Java权限设置和字符、二进制转换 Java权限设置是一种常用的权限控制方法,用于控制用户对系统资源的访问权限。在Java中,我们可以使用位运算来实现权限控制。下面是Java权限设置的知识点: 1. 权限控制算法:我们...

    java进制转换工具类

    二进制数组转换为二进制字符串 将二进制数组转换为十六进制字符串 将十六进制转换为二进制字节数组 将十六进制转换为二进制字符串

    二进制与字符串之间的转换类CBinary

    1. **二进制转字符串**:将二进制数据转换为字符串。这通常涉及到将二进制数据视作一系列字节,然后用某种编码(如ASCII、UTF-8等)解释这些字节,生成对应的字符序列。例如,一个字节的二进制值`01001000`对应ASCII...

    Java实现的进制转换工具类完整示例

    Java实现的进制转换工具类是Java语言中的一种常用工具类,用于实现各种进制之间的转换操作,如二进制、十六进制、字符串、数组等。该工具类主要提供了将字节数组转换为十六进制字符数组或字符串的方法,以及将字符串...

    字符串转16进制字节

    除了Python,其他编程语言如Java、C++、JavaScript等也有类似的方法进行字符串与16进制字节的转换。在Java中,可以使用`String.getBytes()`和`new String(byte[], charset)`;在JavaScript中,可以使用`Buffer`对象...

    java中进制转换(二进制,十进制,十六进制)及字节数组与十六进制的转换

    6. **二进制转十六进制**:先将二进制转换为十进制,再转为十六进制。例如: ```java String binary = "101010"; int decimal = Integer.parseInt(binary, 2); String hex = Integer.toHexString(decimal); ``` 二...

    Java实现任意进制的转换

    在Java中,我们可以使用`Integer`类的`toHexString`方法,将一个整数的二进制表示转换为十六进制字符串。例如: ```java int binaryNumber = 0b101010; // 二进制数 String hexString = Integer.toHexString(binary...

    java十进制转换二进制

    通过分析代码逻辑、算法原理以及实现细节,帮助读者更好地理解十进制到二进制转换的过程。 #### 转换正数到二进制 首先,我们来关注一下如何将正整数转换为二进制表示。在`i2Bs`方法中,正数转换的流程如下: 1. ...

    字符串转16进制码

    字符串是由字符组成的序列,而16进制(Hexadecimal)是一种数字表示方法,通常用于简化二进制数据的显示和处理。本篇文章将深入探讨如何将字符串转换为16进制码,以及这种转换在实际应用中的作用。 首先,我们需要...

    Java进制转换方法整理

    一个二进制字符串 10进制转8进制 Integer.toOctalString(n) 一个八进制字符串 10进制转16进制 Integer.toHexString(n) 一个十六进制字符串 10进制转 R 进制 Integer.toString(100, 16) 一个R进制字符串 ...

    将图片转成二进制并生成Base64编码字符串,再将二进制转换成各种图片

    本文将深入探讨如何将图片转换为二进制格式,然后生成Base64编码字符串,以及如何将这些字符串重新转换回图片。这个过程在很多场景下都有应用,比如在网络上传输图片数据,或者在数据库中存储图片。 首先,我们需要...

    字符串与二进制的相互转化.pdf

    本篇文章基于一个Java类`StrBinaryTurn`,该类提供了几个方法来实现字符串与二进制之间的转换。这些方法包括: 1. `StrToBool`: 将Unicode字符串转换为布尔型数组。 2. `BoolToStr`: 将布尔型数组转换回Unicode字符...

    [JAVA]二进制字符串转十进制带异常抛出

    在Java编程语言中,将一个表示二进制的字符串转换为十进制数值是一项常见的任务。这个过程可能会遇到一些异常情况,例如输入的字符串不是有效的二进制数字,或者超出了整数类型的范围。本篇文章将详细讲解如何进行...

    二进制字节与字符串之间的转换

    你可以通过运行这个程序,观察输入图片文件和输出的字符串,理解二进制字节与字符串之间的转换过程。同时,也可以通过反向转换验证数据是否能准确还原,确保图片的质量和完整性不受影响。 总之,理解和掌握二进制...

    字符串16进制转10进制

    在计算机编程中,字符串的16进制转10进制是一个常见的字符转换操作,特别是当处理二进制数据或在编程调试过程中遇到16进制数据时。16进制数,也称为十六进制数,是一种逢16进位的数制,使用数字0-9和字母A-F(或小写...

    java二进制,字节数组,字符,十六进制,BCD编码转换

    /* java二进制,字节数组,字符,十六进制,BCD编码转换2007-06-07 00:17/** *//** * 把16进制字符串转换成字节数组 * @param hex * @return */

Global site tag (gtag.js) - Google Analytics