import java.io.*;
public class StringtoNum {
/*
* 16进制数字字符集
*/
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());
}
/**
*
* @param hexString
* @return 将十六进制转换为字节数组
*/
public static byte[] HexStringToBinary(String hexStr){
//hexString的长度对2取整,作为bytes的长度
int len = hexStr.length()/2;
byte[] bytes = new byte[len];
byte high = 0;//字节高四位
byte low = 0;//字节低四位
for(int i=0;i<len;i++){
//右移四位得到高位
high = (byte)((hexString.indexOf(hexStr.charAt(2*i)))<<4);
low = (byte)hexString.indexOf(hexStr.charAt(2*i+1));
bytes[i] = (byte) (high|low);//高地位做或运算
}
return bytes;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = null;
try {
System.out.println("Enter the string: ");
str = br.readLine();
System.out.println("Convert the string to hexString: ");
System.out.println(StringtoNum.encode(str));
System.out.println("Convert the hexString to binaryString: ");
System.out.println(Integer.toBinaryString(Integer.parseInt(StringtoNum.encode(str), 16)));
System.out.println("Convert the hexString to int: ");
System.out.println(Integer.parseInt(StringtoNum.encode(str), 16));
System.out.println("Convert the hexString to string: ");
System.out.println(StringtoNum.decode(StringtoNum.encode(str)));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
分享到:
相关推荐
标题"十六进制转十进制VC程序"指出,这是一个使用Visual C++(简称VC)编写的程序,它的功能是将十六进制的数字或字符串转换成等值的十进制形式。这个小程序可能包含一个简单的用户界面,让用户输入十六进制数值或者...
主程序`main`中,通过一系列寄存器操作和调用子程序实现了从接收用户输入、二进制到十进制的转换、再到十六进制的转换的全过程。程序首先保存数据段描述符到DS和ES寄存器,然后依次调用了`decibin`(二进制到十进制...
在C#这种面向对象的编程语言中,进行十进制、十六进制和二进制之间的转换是常见的操作,尤其是在处理数值计算、数据存储或网络通信等问题时。下面我们将深入探讨C#中如何实现这些转换。 一、十进制与十六进制之间的...
本代码信息: 使用语言:java 功能:将整数(包括正负整数)转换成对应的二进制数,然后再控制台上显示。
在本文中,我们将讨论如何使用Java实现各进制转换,包括十进制到二进制、八进制和十六进制的转换。 在Java中,我们可以使用Integer类提供的方法来实现进制转换。Integer类提供了多种方法来将十进制数转换为其他进制...
这将把十进制数21转换成二进制字符串"10101"。 ### 3. 控制台应用程序示例 创建一个简单的C#控制台应用程序来演示这些转换: ```csharp using System; class Program { static void Main() { Console....
在VC++编程环境中,进行十进制实数到二进制、八进制和十六进制的转换是一项常见的任务。这个简单的控制台程序提供了一种方法来解决这个问题,它涉及了基本的数据类型转换和字符串操作。以下是实现这些转换的关键知识...
输入一个整十进制数n,把它转化为二进制,小数部分还没有考虑。。。
在计算机科学中,不同的进制系统用于表示数值,其中最常用的是十进制、二进制和十六进制。在C语言中,处理不同进制转换是常见的编程任务。本篇文档关注的是如何将十进制数转换为十六进制数,通过一个迭代的C语言函数...
例如,要将十进制数转换为二进制,我们可以先用“整数解析”函数将用户的输入转换为十进制整数,然后使用位运算(如“按位与”、“按位左移”等)配合循环来实现二进制的计算。最后,用“整数到字符串”函数以二进制...
5. **十六进制转十进制**:从两个连续的十六进制数字中提取数据,并转换成十进制。这需要了解十六进制与十进制之间的转换规则,以及如何正确处理高四位和低四位。 6. **发送一个字节函数**:实现一个函数用于发送...
本项目"一个简单二进制与十进制的转换器"就是基于这样的原理,利用C语言编写了一个控制台程序,用户可以输入一个十进制数或二进制数,程序会返回相应的转换结果。在开发过程中,开发者可能参考了如鹏网的教程,这类...
本文将深入探讨标题为"进制转换HexConversionUtility.rar"的资源,它是一个C#实现的进制转换工具,能够方便地在二进制、八进制、十进制和十六进制之间进行转换。 首先,让我们了解进制的基本概念。进制是数字系统的...
在IT领域,对数据进行分析和处理时,我们经常需要将二进制数据转换成可读性更强的十六进制表示。"文件的十六进制显示易精经例程"是一个针对这一需求的实例,它涵盖了如何将字节集转换为十六进制文本,以及在处理过程...
这个程序接收用户输入的十进制数字,然后使用Java内置的转换方法生成对应的二进制、八进制和十六进制字符串,并将这些结果输出到控制台。这就是`transform`文件的核心内容,它体现了Java处理进制转换的基本操作。在...
进制转换是计算机科学中的基础概念,常见的有二进制、八进制、十进制和十六进制。在不同的应用场景中,我们需要将数值从一种进制转换为另一种,例如在处理二进制数据或进行计算时。易语言提供了丰富的内建函数和结构...
源码可能包含两个函数:一个用于将十进制转换为二进制字符串,另一个用于将二进制字符串转换回十进制整数。这些函数可以通过用户输入的数字调用,并在控制台输出转换结果。 项目中的"SimpleCalculator_Decimalto...
本文将基于Java语言,深入探讨如何进行十进制、二进制、八进制和十六进制之间的转换,通过一个实际的"进制转换demo"来阐述相关知识。 首先,我们要了解各种进制的基本概念。进制是一种数字表示方式,其中最常见的是...
十六进制到长整数的转换可能涉及到位运算、循环以及条件判断等汇编指令,以逐位解析十六进制字符并转换为对应的二进制数值。 十六进制转长整数的过程通常包括以下步骤: 1. 检查输入字符串的格式,确保其只包含有效...