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

合集下载

二进制,十进制,十六进制,ASCII,BCD码的转换,单片机

二进制,十进制,十六进制,ASCII,BCD码的转换,单片机

1.在片内RAM 30H单元有-个8位二进制数,将其转换成压缩BCD码,存于片内RAM 41H(高位)40H(低位)中。

方法:2^8=256,所以8位二进制A<=256,A/100商是百位数,存放到41h单元,余数再除以10,再得商是10位数,高低位互换,) ORG 0100HSTART:MOV A,30H ;取来8位二进制数MOV B,#100DIV AB ;除以100MOV 41H,A ;商是百位数,存放到41h单元MOV A,B ;取回余数MOV B,#10DIV AB ;再除以10SWAP A ;商是10位数,高低位互换ORL A,BMOV 40H,A ;将十位数与个位位数存入40hSJMP $END2.一个字节(8位)BCD码转换为二进制数(方法:先将高半字节乘以10,再加上低半字节)设待转换的BCD码存放于R2中DTOB:MOV A,R2ANL A,#0F0HSWAP AMOV B,#0AHMUL ABMOV R3,AMOV A,R2ANL A,#0FHADD A,R3RET3.二进制数转换为ASCII码设(30H)=4BH,将高4位的ASCII码放在31H单元,低4位的ASCII码放在32H单元,程序具有通用性,向入口参数30H存入任何数,都能将其变成相应的ISCII 码.ORG 0000HLJMP MAINORG 0030HMAIN:MOV SP,#60HMOV 30H,#4BHMOV R2,30HMOV A,R2ANL A,#0FHCJNE A,#0AH,NEQNEQ: JC LOOPADD A,#37HJMP LOOP3LOOP:ADD A,#30HLOOP3:MOV 31H,AMOV A,R2SWAP AANL A,#0FHCJNE A,#0AH,NE1NE1: JC LOOP1ADD A,#37HJMP LOOP4LOOP1:ADD A,#30HLOOP4:MOV 32H,AA1: SJMP A1END4.已知R0的低半个字节为一个四位的二进制数,要求将其转换为ASCAII码后送回R0中。

java 字符转十六进制的方法

java 字符转十六进制的方法

java 字符转十六进制的方法Java 字符转十六进制的方法一、背景介绍在 Java 编程中,经常会遇到需要将字符转换为十六进制的情况。

本文将介绍几种常用的方法来完成这个转换过程。

二、方法一:使用方法可以使用 String 类的 format 方法将字符转换为十六进制。

具体步骤如下:1.将字符转换为字节数组,使用()方法;2.使用 String 类的 format 方法,将字节数组转换为十六进制字符串,("%02X", byteValue);3.得到最终的十六进制字符串。

三、方法二:使用方法另一种常用的方法是使用 Integer 类的 toHexString 方法。

具体步骤如下:1.将字符转换为 int 类型,使用int charValue = (int)character;2.使用 Integer 类的 toHexString 方法,将 int 类型的字符转换为十六进制字符串,(charValue);3.得到最终的十六进制字符串。

四、方法三:使用 StringBuilder我们也可以使用 StringBuilder 类来完成字符转换为十六进制的操作。

具体步骤如下:1.创建一个 StringBuilder 对象,用于存储转换后的十六进制字符串;2.遍历字符数组,将每个字符转换为十六进制,使用((int)character);3.将转换后的十六进制字符串追加到 StringBuilder 对象中;4.得到最终的十六进制字符串,使用()。

五、方法四:使用 Bitwise 运算符Bitwise 运算符也可以用来将字符转换为十六进制。

具体步骤如下:1.将字符转换为 int 类型,使用int charValue = (int)character;2.取字符的高4位和低4位,分别使用charValue >> 4和charValue & 0x0F;3.将高4位和低4位转换为十六进制字符串,使用(high4bits)和(low4bits);4.得到最终的十六进制字符串,将高4位和低4位的十六进制字符串拼接起来。

JAVA进制转换全攻略

JAVA进制转换全攻略

JA V A 进制转换全攻略十进制转成十六进制:Integer.toHexString(int i)十进制转成八进制Integer.toOctalString(int i)十进制转成二进制Integer.toBinaryString(int i)十六进制转成十进制Integer.valueOf("FFFF",16).toString()八进制转成十进制Integer.valueOf("876",8).toString()二进制转十进制Integer.valueOf("0101",2).toString()有什么方法可以直接将2,8,16进制直接转换为10进制的吗? ng.Integer类parseInt(String s, int radix)使用第二个参数指定的基数,将字符串参数解析为有符号的整数。

examples from jdk:parseInt("0", 10) returns 0parseInt("473", 10) returns 473parseInt("-0", 10) returns 0parseInt("-FF", 16) returns -255parseInt("1100110", 2) returns 102parseInt("2147483647", 10) returns 2147483647parseInt("-2147483648", 10) returns -2147483648parseInt("2147483648", 10) throws a NumberFormatException parseInt("99",throws a NumberFormatExceptionparseInt("Kona", 10) throws a NumberFormatException parseInt("Kona", 27) returns 411787进制转换如何写(二,八,十六)不用算法Integer.toBinaryStringInteger.toOctalStringInteger.toHexString例二public class Test{public static void main(String args[]){int i=100;String binStr=Integer.toBinaryString(i);String otcStr=Integer.toOctalString(i);String hexStr=Integer.toHexString(i);System.out.println(binStr);}例二public class TestStringFormat {public static void main(String[] args) {if (args.length == 0) {System.out.println("usage: java TestStringFormat <a number>"); System.exit(0);}Integer factor = Integer.valueOf(args[0]);String s;s = String.format("%d", factor);System.out.println(s);s = String.format("%x", factor);System.out.println(s);s = String.format("%o", factor);System.out.println(s);}}其他方法:Integer.toHexString(你的10进制数);例如String temp = Integer.toHexString(75);输出temp就为4b//输入一个10进制数字并把它转换成16进制import java.io.*;public class toHex{public static void main(String[]args){int input;//存放输入数据//创建输入字符串的实例BufferedReader strin=new BufferedReader(new InputStreamReader(System.in)); System.out.println("请输入一个的整数:");String x=null;try{x=strin.readLine();}catch(IOException ex){ex.printStackTrace();}input=Integer.parseInt(x);System.out.println ("你输入的数字是:"+input);//输出从键盘接收到的数字System.out.println ("它的16进制是:"+Integer.toHexString(input));//用toHexString把10进制转换成16进制}}本文来自CSDN博客,转载请标明出处:/alex197963/archive/2009/05/27/4219534.aspxpublic class TigerNumberDemo {public static void main(String[] args) {// 输出19 的十进制表示System.out.printf("%d%n", 19);// 输出19 的八进制表示System.out.printf("%o%n", 19);// 输出19 的十六进制表示System.out.printf("%x%n", 19);}}public class TigerNumberDemo {public static void main(String[] args) {// 输出19 的十进制表示System.out.printf("%d%n", 19);// 输出19 的八进制表示System.out.printf("%o%n", 19);// 输出19 的十六进制表示System.out.printf("%x%n", 19);}}利用Integer类方法:view plaincopy to clipboardprint?public class NumberDemo {public static void main(String[] args) {// 十进制19 转成二进制10011System.out.println(Integer.toBinaryString(19));// 十进制19 转成十六进制13System.out.println(Integer.toHexString(19));// 十进制19 转成八进制23System.out.println(Integer.toOctalString(19));}}本文来自CSDN博客,转载请标明出处:/haoyuewuwei/archive/2009/08/19/4458968.aspx二进制,八进制,十六进制间的转换收藏十进制转成十六进制:Integer.toHexString(int i)十进制转成八进制Integer.toOctalString(int i)十进制转成二进制Integer.toBinaryString(int i)十六进制转成十进制Integer.valueOf("FFFF",16).toString()八进制转成十进制Integer.valueOf("876",8).toString()二进制转十进制Integer.valueOf("0101",2).toString()有什么方法可以直接将2,8,16进制直接转换为10进制的吗?ng.Integer类parseInt(String s, int radix)使用第二个参数指定的基数,将字符串参数解析为有符号的整数。

java 转十六进制方法

java 转十六进制方法

java 转十六进制方法摘要:1.引言2.Java中转换十六进制的常用方法3.具体实现方法及示例4.总结正文:【引言】在Java编程中,有时候我们需要将某些数据转换为十六进制字符串,例如在加密和解密过程中。

这里,我们将介绍两种在Java中转换十六进制的常用方法。

【Java中转换十六进制的常用方法】在Java中,有两种常用的转换十六进制的方法:1.使用`Integer.toHexString()`方法:该方法可以直接将整数转换为十六进制字符串。

例如,将整数10转换为十六进制字符串,代码如下:```javaString hexString = Integer.toHexString(10); // 输出"A"```2.使用`String.format()`方法:该方法可以格式化字符串,将其转换为十六进制表示。

例如,将字符串"12345"转换为十六进制字符串,代码如下:```javaString hexString = String.format("%04X", 12345); // 输出"001A"```【具体实现方法及示例】下面我们通过一个简单的示例来说明如何使用这两种方法将整数转换为十六进制字符串:```javapublic class HexConversion {public static void main(String[] args) {int num = 12345;// 使用Integer.toHexString() 方法String hexString1 = Integer.toHexString(num);System.out.println("Integer.toHexString() 方法:" + hexString1);// 使用String.format() 方法String hexString2 = String.format("%04X", num);System.out.println("String.format() 方法:" + hexString2);}}```【总结】在Java中,我们可以使用`Integer.toHexString()`方法和`String.format()`方法将整数转换为十六进制字符串。

[转]Java中byte与16进制字符串的互相转换

[转]Java中byte与16进制字符串的互相转换

[转]Java中byte与16进制字符串的互相转换本⽂转⾃:Java中byte⽤⼆进制表⽰占⽤8位,⽽我们知道16进制的每个字符需要⽤4位⼆进制位来表⽰(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的⾼4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果new String(H) + new String(L)。

即byte⽤⼗六进制表⽰只占2位。

同理,相反的转换也是将两个16进制字符转换成⼀个byte,原理同上。

根据以上原理,我们就可以将byte[] 数组转换为16进制字符串了,当然也可以将16进制字符串转换为byte[]数组了。

/**Java代码1. * Convert byte[] to hex string.这⾥我们可以将byte转换成int,然后利⽤Integer.toHexString(int)来转换成16进制字符串。

2. * @param src byte[] data3. * @return hex string4. */5. public static String bytesToHexString(byte[] src){6. StringBuilder stringBuilder = new StringBuilder("");7. if (src == null || src.length <= 0) {8. return null;9. }10. for (int i = 0; i < src.length; i++) {11. int v = src[i] & 0xFF;12. String hv = Integer.toHexString(v);13. if (hv.length() < 2) {14. stringBuilder.append(0);15. }16. stringBuilder.append(hv);17. }18. return stringBuilder.toString();19. }20. /**21. * Convert hex string to byte[]22. * @param hexString the hex string23. * @return byte[]24. */25. public static byte[] hexStringToBytes(String hexString) {26. if (hexString == null || hexString.equals("")) {27. return null;28. }29. hexString = hexString.toUpperCase();30. int length = hexString.length() / 2;31. char[] hexChars = hexString.toCharArray();32. byte[] d = new byte[length];33. for (int i = 0; i < length; i++) {34. int pos = i * 2;35. d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));36. }37. return d;38. }39. /**40. * Convert char to byte41. * @param c char42. * @return byte43. */44. private byte charToByte(char c) {45. return (byte) "0123456789ABCDEF".indexOf(c);46. }Java代码1. //将指定byte数组以16进制的形式打印到控制台2. public static void printHexString( byte[] b) {3. for (int i = 0; i < b.length; i++) {4. String hex = Integer.toHexString(b[i] & 0xFF);5. if (hex.length() == 1) {6. hex = '0' + hex;7. }8. System.out.print(hex.toUpperCase() );9. }10.11. }java中byte转换int时为何与0xff进⾏与运算在剖析该问题前请看如下代码Java代码1. public static String bytes2HexString(byte[] b) {2. String ret = "";3. for (int i = 0; i < b.length; i++) {4. String hex = Integer.toHexString(b[ i ] & 0xFF);5. if (hex.length() == 1) {6. hex = '0' + hex;7. }8. ret += hex.toUpperCase();9. }10. return ret;11. }上⾯是将byte[]转化⼗六进制的字符串,注意这⾥b[ i ] & 0xFF将⼀个byte和 0xFF进⾏了与运算,然后使⽤Integer.toHexString取得了⼗六进制字符串,可以看出b[ i ] & 0xFF运算后得出的仍然是个int,那么为何要和 0xFF进⾏与运算呢?直接 Integer.toHexString(b[ i ]);,将byte强转为int不⾏吗?答案是不⾏的.其原因在于:1.byte的⼤⼩为8bits⽽int的⼤⼩为32bits2.java的⼆进制采⽤的是补码形式在这⾥先温习下计算机基础理论byte是⼀个字节保存的,有8个位,即8个0、1。

java二进制方法

java二进制方法

java二进制方法二进制方法指的是使用二进制数表示和操作数据的方法。

在计算机科学中,二进制是一种使用两个不同的数字0和1来表示数值的方式。

在Java中,可以使用不同的方法来处理和操作二进制数据。

一、二进制转换1. 十进制转二进制:使用Java中的Integer类的toBinaryString(方法可以将十进制数转换为二进制字符串。

```javaint decimal = 10;String binary = Integer.toBinaryString(decimal);System.out.println(binary); // 输出 1010```2. 二进制转十进制:使用Java中的Integer类的parseInt(方法可以将二进制字符串转换为十进制数。

```javaString binary = "1010";int decimal = Integer.parseInt(binary, 2);System.out.println(decimal); // 输出 10```3. 十六进制转二进制:使用Java中的Integer类的toBinaryString(方法可以将十六进制数转换为二进制字符串。

```javaString hex = "A";String binary = Integer.toBinaryString(Integer.parseInt(hex, 16));System.out.println(binary); // 输出 1010```4. 二进制转十六进制:使用Java中的Integer类的toHexString(方法可以将二进制字符串转换为十六进制数。

```javaString binary = "1010";String hex = Integer.toHexString(Integer.parseInt(binary, 2));System.out.println(hex); // 输出 A```二、二进制运算1. 二进制与运算:使用Java中的位运算符&可以对两个二进制数进行与运算。

Java3种方法实现进制转换

Java3种方法实现进制转换

Java3种⽅法实现进制转换由其他进制转换为⼗进制⽐较简单,下⾯着重谈⼀谈⼗进制如何化为其他进制。

1.使⽤Java带有的⽅法Integer,最简单粗暴了,代码如下//使⽤java提供的⽅法//但仅局限于⽐较常⽤的⼆进制、⼋进制、⼗六进制public static String trans1(int num, int radix){if(radix == 2)return Integer.toBinaryString(num);else if(radix == 8)return Integer.toOctalString(num);else if(radix == 16)return Integer.toHexString(num);return null;}2.使⽤数组进⾏交换,贴码://使⽤数组的形式进⾏转换public static void trans2(int num, int radix){System.out.println(num+"转成"+radix+"进制数为:");//创建数组,32位char[] arr = new char[32];//创建参考字符数组char[] ch = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};//指针,从数组最后开始int pos = 32;//开始循环计算num和radix的商和余数while(num > 0){arr[--pos] = ch[num % radix];num /= radix;/** 这⾥是针对⼆进制、⼋进制和⼗六进制进⾏的移位运算arr[--pos] = ch[num&(radix-1)];if(radix == 2)num >>= 1;else if(radix == 8)num >>= 3;else if(radix == 16)num >>= 4;*/}//输出有效的进制数for(int i = pos; i < 32; i++)System.out.print(arr[i]);System.out.println();}3.使⽤StringBuilder类型,贴码://使⽤StringBuilder进⾏转换public static String trans3(int num, int radix){//使⽤StringBuilder的reverse⽅法StringBuilder sb = new StringBuilder();while(num > 0){//把除以基数的余数存到缓冲区中sb.append(num % radix);num /= radix;}return sb.reverse().toString();}以上就是Java 3种⽅法实现进制转换的详细内容,更多关于Java 进制转换的资料请关注其它相关⽂章!。

java十六进制转二进制方法

java十六进制转二进制方法

java十六进制转二进制方法Java是一种常用的编程语言,广泛应用于软件开发和计算机科学领域。

在Java中,可以使用十六进制转二进制的方法将一个十六进制数转换为对应的二进制数。

本文将介绍如何使用Java实现这一转换过程。

我们需要了解十六进制和二进制的表示方法。

在十六进制中,除了0-9的数字外,还包括A-F的字母,分别表示10-15的数。

而在二进制中,只有0和1两个数字。

因此,我们需要将十六进制数中的每一位转换为对应的四位二进制数。

在Java中,可以使用Integer类的toBinaryString()方法将一个十六进制数转换为对应的二进制数。

该方法的用法如下:```javaString binaryString = Integer.toBinaryString(hexNumber);```其中,hexNumber是要转换的十六进制数。

该方法将返回一个字符串,表示对应的二进制数。

下面是一个完整的Java程序示例,将十六进制数转换为二进制数:```javapublic class HexToBinary {public static void main(String[] args) {String hexNumber = "1A"; // 十六进制数String binaryString = hexToBinary(hexNumber);System.out.println("二进制数为:" + binaryString);}public static String hexToBinary(String hexNumber) {int decimal = Integer.parseInt(hexNumber, 16); // 将十六进制数转换为十进制数String binaryString = Integer.toBinaryString(decimal); // 将十进制数转换为二进制数return binaryString;}}```在上面的示例中,我们定义了一个hexToBinary()方法,用于将十六进制数转换为二进制数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JAVA二进制字节数组字符十六进制BCD编码转换;import java.io.*;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;public class DataConverter {/* 把16进制字符串转换成字节数组* @param hex* @return*/public static byte[] hexStringToByte(String hex) {int len = (hex.length() / 2);byte[] result = new byte[len];char[] achar = hex.toCharArray();for (int i = 0; i < len; i++) {int pos = i * 2;result[i] = (byte) (toByte(achar[pos]) << 4 | toByte(achar[pos + 1]));}return result;}private static byte toByte(char c) {byte b = (byte) "0123456789ABCDEF".indexOf(c);return b;}/** *//*** 把字节数组转换成16进制字符串* @param bArray* @return*/public static final String bytesToHexString(byte[] bArray) {StringBuffer sb = new StringBuffer(bArray.length);String sTemp;for (int i = 0; i < bArray.length; i++) {sTemp = Integer.toHexString(0xFF & bArray[i]);if (sTemp.length() < 2)sb.append(0);sb.append(sTemp.toUpperCase());}return sb.toString();}/** *//*** 把字节数组转换为对象* @param bytes* @return* @throws IOException* @throws ClassNotFoundException*/public static final Object bytesToObject(byte[] bytes) throws IOException, ClassNotFoundException {ByteArrayInputStream in = new ByteArrayInputStream(bytes);ObjectInputStream oi = new ObjectInputStream(in);Object o = oi.readObject();oi.close();return o;}/** *//*** 把可序列化对象转换成字节数组* @param s* @return* @throws IOException*/public static final byte[] objectToBytes(Serializable s) throws IOException {ByteArrayOutputStream out = new ByteArrayOutputStream();ObjectOutputStream ot = new ObjectOutputStream(out);ot.writeObject(s);ot.flush();ot.close();return out.toByteArray();}public static final String objectToHexString(Serializable s) throws IOException{ return bytesToHexString(objectToBytes(s));}public static final Object hexStringToObject(String hex) throws IOException, ClassNotFoundException{return bytesToObject(hexStringToByte(hex));}/** *//*** @函数功能: BCD码转为10进制串(阿拉伯数据)* @输入参数: BCD码* @输出结果: 10进制串*/public static String bcd2Str(byte[] bytes){StringBuffer temp=new StringBuffer(bytes.length*2);for(int i=0;i<bytes.length;i++){temp.append((byte)((bytes[i]& 0xf0)>>>4));temp.append((byte)(bytes[i]& 0x0f));}returntemp.toString().substring(0,1).equalsIgnoreCase("0")?temp.toString().substring(1):temp.toString() ;}/** *//*** @函数功能: 10进制串转为BCD码* @输入参数: 10进制串* @输出结果: BCD码*/public static byte[] str2Bcd(String asc) {int len = asc.length();int mod = len % 2;if (mod != 0) {asc = "0" + asc;len = asc.length();}byte abt[] = new byte[len];if (len >= 2) {len = len / 2;}byte bbt[] = new byte[len];abt = asc.getBytes();int j, k;for (int p = 0; p < asc.length()/2; p++) {if ( (abt[2 * p] >= '0') && (abt[2 * p] <= '9')) {j = abt[2 * p] - '0';} else if ( (abt[2 * p] >= 'a') && (abt[2 * p] <= 'z')) {j = abt[2 * p] - 'a' + 0x0a;} else {j = abt[2 * p] - 'A' + 0x0a;}if ( (abt[2 * p + 1] >= '0') && (abt[2 * p + 1] <= '9')) {k = abt[2 * p + 1] - '0';} else if ( (abt[2 * p + 1] >= 'a') && (abt[2 * p + 1] <= 'z')) {k = abt[2 * p + 1] - 'a' + 0x0a;}else {k = abt[2 * p + 1] - 'A' + 0x0a;}int a = (j << 4) + k;byte b = (byte) a;bbt[p] = b;}return bbt;}/** *//*** @函数功能: BCD码转ASC码* @输入参数: BCD串* @输出结果: ASC码*//*public static String BCD2ASC(byte[] bytes) {StringBuffer temp = new StringBuffer(bytes.length * 2);for (int i = 0; i < bytes.length; i++) {int h = ((bytes[i] & 0xf0) >>> 4);int l = (bytes[i] & 0x0f);temp.append(BToA[h]).append( BToA[l]);}return temp.toString() ;}*//** *//*** MD5加密字符串,返回加密后的16进制字符串* @param origin* @return*/public static String MD5EncodeToHex(String origin) {return bytesToHexString(MD5Encode(origin));}/** *//*** MD5加密字符串,返回加密后的字节数组* @param origin* @return*/public static byte[] MD5Encode(String origin){ return MD5Encode(origin.getBytes());}/** *//*** MD5加密字节数组,返回加密后的字节数组* @param bytes* @return*/public static byte[] MD5Encode(byte[] bytes){ MessageDigest md=null;try {md = MessageDigest.getInstance("MD5");return md.digest(bytes);} catch (NoSuchAlgorithmException e) {e.printStackTrace();return new byte[0];}}}。

相关文档
最新文档