package com.tanli.testCode;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class BinarySystem {
public static void main(String[] args) throws IOException {
testS2B();
System.out.println("-----------------------------");
testB2S();
}
public static void testS2B() {
System.out.println("=========字符串到二进制!=============");
BASE64Encoder e = new BASE64Encoder();
// 编码器
String s = "[B@1fb8ee3";
System.out.println("尚未编码的数据:" + s);
s = e.encode(s.getBytes());
// 获得base64编码后的字符串
System.out.println("编码后的数据:" + s);
System.out.print("二进制数据:");
for (char c : s.toCharArray()) {
// 对字符串中的字符逐个转换成二进制数据
String binaryStr = Integer.toBinaryString(c);
// 单个字符转换成的二进制字符串
String format = String.format("%8s", binaryStr);
// 因为上面转换成二进制后的位数不够8位所以不足的前面补空格,这里是考虑到能够从数据文件批量读取。
format = format.replace(" ", "0");
// 高位空格替换成0,其实编码后的数据最大范围为2的6次方,首位一定是空格,不然就要用format.startWith(" ");来判断
System.out.print(format);
// 输出
}
System.out.println("\n=========字符串到二进制结束!=============");
}
public static void testB2S() throws IOException {
System.out.println("=========二进制到字符串开始!=============");
StringBuffer results = new StringBuffer();
// 保存尚未解码的数据结果
String binaryStr = "01010111001100000100101001000001010011010101011101011010011010010100111101000111010101100110110001001101011101110011110100111101";
// 二进制数据,这里是取用上面程序的最后结果
System.out.println("二进制数据:" + binaryStr);
// 这里采用正则表达式来匹配8位长度的数据,然后一个个find()
Matcher matcher = Pattern.compile("\\d{8}").matcher(binaryStr);
// 定义匹配模式并,获取模式
BASE64Decoder d = new BASE64Decoder();
// 解码器
while (matcher.find()) {
// 在binaryStr中找到了8位长度的数据,依次往后面找
int intVal = Integer.valueOf(matcher.group(), 2);
// matcher.group()中存储了找到匹配模式的数据,这里以2进制的形式转换为整数
results.append((char) intVal);
// 将整数转换为对应的字符,并添加到结果中
}
System.out.println("尚未解码的数据:" + results);
// 输出尚未解码的数据
String s = new String(d.decodeBuffer(results.toString()));
// 得到解码后的数据
System.out.println("解码后的数据:" + s);
// 输出解码后的数据
System.out.println("=========二进制到字符串结束!=============");
}
}
分享到:
相关推荐
在IT领域,图片二进制转换是一个常见的操作,特别是在嵌入式系统和单片机编程中。这个过程涉及到将图像数据转化为二进制格式,以便这些数据能够在资源有限的硬件设备上有效地处理和显示。标题"图片二进制转换器"指的...
浮点数与二进制转换在计算机科学中是至关重要的概念,特别是在通信开发、数据存储和计算领域。本文将深入探讨浮点数和二进制之间的转换,以及如何利用工具进行这种转换。 浮点数是一种表示实数的方式,它允许在有限...
本文实例讲述了C#实现把图片转换成二进制以及把二进制转换成图片的方法。分享给大家供大家参考,具体如下: private void button1_Click(object sender, EventArgs e) { string path = this.textBox1.Text; byte...
二进制转换成BCD码 本资源是一个将二进制数转换成BCD码的VHDL代码,提供32位转换,可以自行扩展。下面是对该代码的详细解释和知识点总结: 二进制和BCD码 在计算机科学中,二进制是最基本的数制,使用0和1两个...
数据二进制转换器是一种非常实用的工具,它主要用于将我们日常生活中常用的数据类型转换为二进制形式。在计算机科学和信息技术领域,二进制是所有计算的基础,因为计算机内部只能理解和处理二进制数据,即由0和1组成...
浮点数的二进制转换 浮点数的二进制转换是将浮点数转换为二进制形式,以便于计算机处理和存储。浮点数的二进制转换分为三步:首先,将浮点数分解为整数部分和小数部分;其次,将整数部分和小数部分分别转换为二进制...
在C#编程环境中,开发一个二进制转换的窗体应用程序是一项常见的任务,尤其是在学习基础的数字系统转换和用户界面设计时。这个程序允许用户输入十进制数值,并将其转换为二进制形式,或者反之,将二进制数值转换为十...
Multisim仿真 二进制转换为BCD码 multisim14仿真源文件
虽然这种方法可能在某些特定应用中有效,但并不是通用的二进制到十进制转换方法。 总之,这段 Verilog 代码提供了一种非标准的方法将32位二进制数转换为十进制数。它利用逐位检查和位移操作,对输入的二进制数进行...
数据结构与算法分析堆栈的操作二进制转换为其他进制
教程名称:计算机二进制转换基础知识课程目录:【】0.课程简介【】1.计算机系统进制概述【】2.十六进制与其它进制的转换【】3.二进制与其它进制的转换【】4.十进制与其它进制的转换【】计算机进制转换二进制、八进制...
在IT领域,二进制转换是一项基础且至关重要的技能,特别是在计算机编程、数据处理和通信技术中。二进制系统是计算机科学的基础,所有的数字、字符甚至颜色在计算机内部都是以二进制的形式存在,即0和1的组合。本节...
"二进制转换程序,含浮点数的转换" 本文将详细介绍一个二进制转换程序,含浮点数的转换及八进制的转换。该程序使用C语言编写,能够将任意十进制数表示成给定精度的二进制数。 一、整数部分的转换 整数部分的转换...
本教程将重点讨论"单片机程序之二进制转换"这一主题,帮助初学者掌握如何在单片机程序中进行二进制与其它数值格式间的转换。 二进制(Binary)是计算机科学的基础,所有计算和数据存储都是以二进制的形式进行的。在...
在IT领域,二进制转换是一项基础且至关重要的技能,特别是在处理各种数字、图像和音频数据时。"二进制转换实用小工具"是专为此目的设计的一款软件,它简化了将不同格式的文件(如音频文件和图片资源)转换为二进制...
16位二进制转换BCD码的verilog代码,Quartus II软件打开。Keil也可以打开。EDA课程实验作业参考。
二进制转换十进制 c语言 输入8位二进制数 输出十进制数
"二进制转换base64" 在计算机科学中,二进制转换base64是一种常用的编码方式,用于将二进制数据转换为ASCII码,以便于在网络上传输或存储。base64编码是一种可逆的编码方式,即可以将base64编码的数据恢复为原始的...
图片转二进制代码工具类。
本篇文章将深入探讨二进制与十六进制之间的转换,以解答“将二进制转换为16进制”的问题。 二进制系统基于两个数字:0和1,是所有数字计算的基础。而十六进制是一种逢16进1的计数系统,使用16个符号:0、1、2、3、4...