java byte数到十六进制字符串表现形式程序设计原理和实现方式

  1. 在取低四位时,需要同时满足高四位全部为零,且低四位不变,所以&0x0f,这样就能使这两个条件同时满足。
  2. 在取高四位时,需要将该byte数左移>>四位,同理如上。

程序实现如下:

public class Demo9 {
    public static void main(String[] args) {
        System.out.println(convert((byte) 105));
    }
    static String convert(byte b){
        int low = b & 0x0f;
        int high = (b>>4) & 0x0f;
        char[] arr = {‘0‘,‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘,‘7‘,‘8‘,‘9‘,‘A‘,‘B‘,‘C‘,‘D‘,‘E‘,‘F‘};
        return "" +arr[high] +arr[low];
    }
}

时间: 2024-09-30 06:09:58

java byte数到十六进制字符串表现形式程序设计原理和实现方式的相关文章

用Java语言实现对十六进制字符串异或运算

前言:好久没有写博客,最近一年感觉真是好忙,各种做不完的工作.相信很多上班族都会有这种感觉.最近对NFC进行写卡操作,需要计算一个校验位.一般情况下,校验位多数是由前几个字节进行异或运算所得. 现在我就先说一下我使用的场景: 把一个16字节的数据写到CPU卡(如交通卡)里面,最后一字节是校验码---前十五字节异或. 我开始从网上找了一些别人写的算法发现计算后结果不对,或者就是写的太复杂了,于是自己就写了一个,感觉也比较简单,现在分享给大家,希望一起交流一下. 第一节:什么是异或运算(主要摘自百度

byte[]数组与十六进制字符串与字符串的互相转换 ——转载

字符串转换成十六进制字符串方法1: /**      * 字符串转换成十六进制字符串     */      public static String str2HexStr(String str) {          char[] chars = "0123456789ABCDEF".toCharArray();          StringBuilder sb = new StringBuilder("");        byte[] bs = str.ge

Java 将字节转换为十六进制字符串

/**     * 将字节转换为十六进制字符串     *      * @param mByte     * @return     */    private static String byteToHexStr(byte mByte) {        char[] Digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A',                'B', 'C', 'D', 'E', 'F' };      

有符号数和无符号数------c++程序设计原理与实践(进阶篇)

有符号数与无符号数的程序设计原则: 当需要表示数值时,使用有符号数(如 int). 当需要表示位集合时,使用无符号数(如unsigned int). 有符号数和无符号数混合运算有可能会带来灾难性的后果.例如: vector<int> v; for(int i=0;i<v.size();++i)cout<<v[i]<<'\n'; 易实现版本: unsigned char max=160; //非常大 for(signed char i=0;i<max;i++)

android byte字节数组转换十六进制字符串(物联网开发总结)

想起前段时间的物联网的外包开发,经常遇到通过wifi接受的数据,要通过转换成十六进制字符串,或者最后又是十进制数据.都是根据双方的协议来开发的.那么我发送过去的数据也需要,经过特殊转换成byte字节发过去,硬件那边收到不至于乱码的数据. 1.硬件调试发给android这边是十六进制数据 原始数据:68 38 38 68 A 72 78 55 34 12 43 23 01 07 Y 00 00 00 0C 13 78 56 34 12 0C 3B 78 34 12 0C 26 78 56 34 1

Java学习篇之---byte与十六进制字符串之间互转

byte与十六进制字符串之间互转 byte,字节类型,占用8bit空间,可用8位2进制数表示:十六进制,每位占有4bit空间,可用4位2进制数表示. 我们可以把每个byte类型转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果. 即byte用十六进制表示只占2位. 同理,相反的转换也是将两个16进制字符转换成一个byte. 根据以上原理,我们就可以将byte[] 数组转换为16进制字符串了,当然也可以将1

ios十进制、十六进制字符串,byte,data等之间的转换

十进制->十六进制 Byte bytes[]={0xA6,0x27,0x0A}; NSString *strIdL  = [NSStringstringWithFormat:@"%@",[[NSStringalloc]initWithFormat:@"%02lx",(long)bytes[0]]]; 十六进制->十进制 NSString *rechargeInfo =  @"0xff055008"; NSString *cardId2

Java 十六进制字符串-HexString

http://my.oschina.net/xinxingegeya/blog/287476 byte[]和十六进制字符串相互转换 Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示. 所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果 new String(H) + new String(L). 同理,相反的转换也是将两个16进制字符

VC中,如何将十六进制字符串转换为十进制数?

原文链接:http://blog.csdn.net/bennyfun79/article/details/6934843 在程序中,我们有时需要将一个十六进制字符串转换为十进制数字.比如: 1 char *ptr="0x11"; 2 int n=0; 3 //我们想让n等于0x11,即17 通常我们在C中,想将一个字符串转换为一整形数字,通常会使用下面的方法: view plaincopy to clipboardprint? 1 char *ptr="123";