16进制转换、获取指定位值

16进制跟10进制互转

10==>16  Integer.toHexString(10);

16==>10 Integer.parseInt("7F");

 int data= 0x00000708;

  ByteBuffer buffer = ByteBuffer.allocate(4);

   buffer.putInt(data); 

   int byte2 =   buffer.getShort(2);  两个字节值(111 00001000=1800);


16进制跟数组互转

public static byte[]hexStringToByteArray(String s) {//16进制String 转为数组

int len = s.length();

    byte[] data =new byte[len /2];

    for (int i =0; i < len; i +=2) {

data[i /2] = (byte) ((Character.digit(s.charAt(i), 16) <<4) + Character.digit(s.charAt(i+1), 16));

    }

return data;

}

public static StringbytesToHexString(byte[] bArray) {//数组转为16进制String

StringBuffer sb =new StringBuffer(bArray.length);

    for (int i =0; i < bArray.length; ++i) {

String sTemp = Integer.toHexString(255 & bArray[i]);

        if (sTemp.length() <2) {

sb.append(0);

        }

sb.append(sTemp.toUpperCase());

    }

return sb.toString();

}


高四位值 :1&0xf0>>4

低四位值:1&0x0f 

指定位值:

for (int i =0; i <8; i++) {

Log.e("getBit", getBit(127, i) +"==");

}

public int getBit(int value, int index) {

if (index >7)

return -1;

    return value >> index &0x01;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 软件的加密与解密是一个迷人的研究领域,它几乎可以与任意一种计算机技术紧密结合——密码学、程序设计语言、操作系统、数...
    架构通天之路阅读 680评论 0 0
  • Netty实践与NIO原理 一、阻塞IO与非阻塞IO Linux网络IO模型(5种) (1)阻塞IO模型 所有文件...
    fly_wings阅读 248评论 0 0
  • 1.String类:字符串(重点) (1)多个字符组成的一个序列,叫字符串。 生活中很多数据的描述都采用的是...
    临时_01e2阅读 116评论 0 0
  • JAVA面试题 1、作用域public,private,protected,以及不写时的区别答:区别如下:作用域 ...
    JA尐白阅读 1,181评论 1 0
  • [TOC] > 从JDK NIO文档可以看到,Java将其划分成了三大块:Channel,Buffer以及Sele...
    Ever_00阅读 1,127评论 0 3