【Java】将字节转换成十六进制、BCD码输出
 public class HexUtils {  
     public static void main(String[] args) {
         byte []out = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
                 (byte)0x10, (byte)0x11, (byte)0x12, (byte)127, (byte)128, (byte)255 };
         System.out.println( bytesToHexString((byte)10));
         System.out.println( bytesToHexString(out) );
         System.out.println( bytesToHexString(out, 0) );
         System.out.println( bytesToHexString(out, 1) );
         byte []b1 = hexStringToBytes("0123456789ABCDEF");
         for( int i = 0; i < b1.length; i++ ) {
             System.out.println("[" + i + "]:" + b1[i]);
         }
         System.out.println( bytesToHexString(b1) );
         byte []b2 = bcdStringToBytes("1234567890123456");
         for( int i = 0; i < b2.length; i++ ) {
             System.out.println("[" + i + "]:" + b2[i]);
         }
         System.out.println( bytesToHexString(b2) );
         byte []bcdBytes = {0, 1, 2, 3, 4, 5, 6, 7, 9, 111,
                 10, 11, 21, 31, 41, 51, 61, 71, 81, 91, 99};
         System.out.println( bcdToHexString(bcdBytes) );
     }  
     public static String bytesToHexString(byte src) {
         int v = src & 0xFF;
         String hv = Integer.toHexString(v);
         return hv;
     }  
     public static String bytesToHexString(byte[] src) {
         StringBuilder stringBuilder = new StringBuilder("");
         if (src == null || src.length <= 0) {
             return null;
         }
         for (int i = 0; i < src.length; i++) {
             int v = src[i] & 0xFF;
             String hv = Integer.toHexString(v);
             hv = hv.toUpperCase();
             if (hv.length() < 2) {
                 stringBuilder.append(0);
             }
             stringBuilder.append(hv);
         }
         return stringBuilder.toString();
     }  
     public static String bytesToHexString(byte[] src, int mode) {
         StringBuilder stringBuilder = new StringBuilder("");
         if (src == null || src.length <= 0) {
             return null;
         }
         for (int i = 0; i < src.length; i++) {  
             if( i != 0 && i % 16 == 0 ) {
                 stringBuilder.append("\r\n");
             }
             if( mode == 1 ) {
                 stringBuilder.append("0x");
             }
             int v = src[i] & 0xFF;
             String hv = Integer.toHexString(v);
             if (hv.length() < 2) {
                 stringBuilder.append(0);
             }
             stringBuilder.append(hv);
             if( mode == 1 && i+1 != src.length ) {
                 stringBuilder.append(',');
             }
             stringBuilder.append(" ");
         }
         return stringBuilder.toString();
     }
     public static String bcdToHexString(byte[] src) {
         StringBuilder stringBuilder = new StringBuilder("");
         if (src == null || src.length <= 0) {
             return null;
         }
         for (int i = 0; i < src.length; i++) {
             int v = src[i] & 0xFF;
             int v1 = v / 10;
             int v2 = v % 10;
             if( v >= 0 && v < 100 ) {
                 stringBuilder.append( v1 );
                 stringBuilder.append( v2 );
             }
         }
         return stringBuilder.toString();
     }  
     public static byte[] hexStringToBytes(String hexString) {
         if (hexString == null || hexString.equals("") || hexString.length() % 2 != 0) {
             return null;
         }
         hexString = hexString.toUpperCase();
         int length = hexString.length() / 2;
         char[] hexChars = hexString.toCharArray();
         byte[] d = new byte[length];
         for (int i = 0; i < length; i++) {
             int pos = i * 2;
             d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
         }
         return d;
     }  
     public static byte[] bcdStringToBytes(String hexString) {
         if (hexString == null || hexString.equals("") || hexString.length() % 2 != 0) {
             return null;
         }
         hexString = hexString.toUpperCase();
         int length = hexString.length() / 2;
         char[] hexChars = hexString.toCharArray();
         byte[] d = new byte[length];
         for (int i = 0; i < length; i++) {
             int pos = i * 2;
             d[i] = (byte) (charToByte(hexChars[pos]) * 10 + charToByte(hexChars[pos + 1]));
         }
         return d;
     } 
     private static byte charToByte(char c) {
         return (byte) "0123456789ABCDEF".indexOf(c);
     }
 }  
【Java】将字节转换成十六进制、BCD码输出的更多相关文章
- 二进制 转换成十进制 BCD码(加3移位法)
		"原来的二进制数十几位,则左移时就要左移几位" "二进制数调整BCD码的方法是将二进制码左移8次,每次移位后都检查低四位LSD+3是否大于7,如是则加3,否则不加,高4位 ... 
- delphi 浮点数float转换成十六进制字符串的方法(FloatToHex)
		重新书写了float型转为十六进制的delphi程序 Function FloatToHex(Value: single): string; var l, i: integer; HexText,te ... 
- delphi  浮点数转换成十六进制字符串的方法
		我们在研究封包技术时,经常会碰到将浮点数转换成十六进制形式.比如在游戏中人物的座标,经常就用浮点数来表示.怎么将浮点数转换成十六进制字符串形式呢?下面我将写出其在DELPHI中的方法. 先 ... 
- android112    jni  把java的字符串转换成c的字符串,数组处理
		package com.itheima.charencode; import android.os.Bundle; import android.app.Activity; import androi ... 
- qrcode.js插件将你的内容转换成二维码格式
		---qrcode.js插件将你的内容转换成二维码格式--- 我之前一直想知道二维码是怎么生成,所以就了解了一下, 最后还是不知道它的原理, 但是,我知道怎么生成. 现在就让我带你制作一个你喜爱的二维 ... 
- URL转换成二维码
		转载请注明出处:http://www.cnblogs.com/cnwutianhao/p/6685804.html 二维码已经成为我们日常生活中的一个不可获取的产物,火车票上,景区门票,超市付款等等都 ... 
- curl命令转换成php源码
		curl命令转换成php源码 获取状态: curl -X GET -H "Content-Type:application/json" -H "Authorization ... 
- python 字节转换成图像
		python 字节转换成图像 使用base64 1.图片转成字节使用: base64.b64encode() 2.字节转成图片: base64.b64decode() 图片字节串: iVBORw0K ... 
- Java-Runoob-高级教程-实例-时间处理:04. Java 实例 - 时间戳转换成时间
		ylbtech-Java-Runoob-高级教程-实例-时间处理:04. Java 实例 - 时间戳转换成时间 1.返回顶部 1. Java 实例 - 时间戳转换成时间 Java 实例 以下实例演示 ... 
随机推荐
- java项目中登陆时记住密码
			1.在登陆的时候记住密码,不知自动登陆: 2.登陆页面,填写用户名,密码,点击记住密码,下次进入登陆页面的时候,填写同样的用户名,密码自动填充(在不一次会话的情况下也就是说在不关闭浏览器的情况下): ... 
- 牛客网多校第3场Esort string (kmp)
			链接:https://www.nowcoder.com/acm/contest/141/E 来源:牛客网 题目描述 Eddy likes to play with string which is a ... 
- MSSQL索引视图(indexed view)之简述及使用
			乍一听到这个名字,可能感到有点陌生,这个对象是干嘛的呢?原理是什么?不用着急,我们看看下面的内容,慢慢就明白了.顾名思义,索引视图就是建有索引的视图,这是MSSQL提供的一项技术,用于提升某些SQL语 ... 
- react native 入门 (1)- 环境搭建, 创建第一个Hello World
			Create React Native App 是开始构建新的React Native应用程序的最简单方法.它允许您启动项目而无需安装或配置任何工具来构建本机代码 - 无需安装Xcode或Androi ... 
- textarea输入框限制字数
			<textarea onkeyup="checkLen(this)"></textarea> <div>您还可以输入 <span id=& ... 
- js如何通过末次月经日期计算预产日期
			计算方式有两种 1)直接添加280天 2)添加10月8天(参数传递,可用改成9月7天等) js中引入文件 <script src="js/jquery.min.js"> ... 
- unity中键盘WASD控制。(WS控制物体前后移动,AD控制左右旋转。)
			private float rotateSpeed = 30f; private float movespeed = 5; void FixedUpdate() { //第一种控制移动 float h ... 
- File 和 导出jar包
			1.File import java.io.File; import java.io.IOException; public class FileTest { public static void m ... 
- selenium(七)webdriverwait,高级等待,替代sleep
			#coding=utf-8 from selenium import webdriver from selenium.webdriver.common.by import By from seleni ... 
- HP Instant Information
			HP Instant Information before HP-UX 11i v3 <管理系统和工作组:HP-UX系统管理员指南> After HP-UX 11i v3 <HP-U ... 
