java byte转二进制字符串

原创 2015年11月19日 15:30:49

今天看同事的代码,看到应用巧妙的地方,故记录下来。


byte类型转二进制字符串的代码,废话不说,先上代码

代码:

byte tByte = -2;
String tString = Integer.toBinaryString((tByte & 0xFF) + 0x100).substring(1);
System.out.println("tString:" + tString);

执行结果:

tString:11111110


代码说明:

1、主要用到了Integer.toBinaryString方法转化为二进制的。但这个方法的参数是int型,所以需要先转换为int型。

2、转换为int型的方式:tByte & 0xFF

tByte: -2  如果自动转换为int型依旧为-2,但是 -2的int型转化为二进制是11111111111111111111111111111110。

因为java中是以补码的方式显示内容的,-2的二进制原码是 10000000000000000000000000000010,转化为反码+1为补码,就是上述数据了。

但是我们想要的是10000010的原码,补码为111111110。所以对上述数据进行 & 0xFF的操作。

这一步看不懂的请看 java & 0xFF

3、上述步骤后,显示的为如下了,那之后的操作又是做什么的呢。

Integer.toBinaryString(tByte & 0xFF)  => 11111110 // tByte = -2
这个需要把tByte = 2,如下所示:

Integer.toBinaryString(tByte & 0xFF)  => 10 // tByte = 2
那么 + 0x100后再截取后面的八位,就是填充字符串的了。


小结,这种做法我是第一次见到,故收藏分享了。

因借用了友人的代码,顺便替他宣传下博客

https://saber-dncs.rhcloud.com/saber/index

版权声明:本文为博主原创文章,未经博主允许不得转载。

(学习笔记) Java byte[]转二进制字符串,十六进制字符串的相互转换

public class HexConver { public static void main(String[] args) { String content = "这是一个测试"; S...
  • qq969422014
  • qq969422014
  • 2016年09月20日 23:11
  • 5890

Java byte[] 字节数组 转 二进制 八进制 十进制 十六进制字符串

【前言】 java中很多时候需要将byte[]转为各种进制的
  • uikoo9
  • uikoo9
  • 2014年06月01日 19:52
  • 26100

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

byte与十六进制字符串之间互转 byte,字节类型,占用8bit空间,可用8位2进制数表示;十六进制,每位占有4bit空间,可用4位2进制数表示。 我们可以把每个byte类型转换成两个相应的16进制...
  • A_little_e
  • A_little_e
  • 2015年06月03日 13:27
  • 1681

Java byte[] 字节数组 转 二进制 八进制 十进制 十六进制字符串

Java byte[] 字节数组 转 二进制 八进制 十进制 十六进制字符串
  • hemin1003
  • hemin1003
  • 2017年01月20日 14:36
  • 426

Java byte数组与十六进制字符串互转

http://aub.iteye.com/blog/1129228 Java byte数组与十六进制字符串互转 Java中byte用二进制表示占用8位,而我们知道16进制的每个字...
  • Skypine_Lee
  • Skypine_Lee
  • 2012年05月09日 18:09
  • 989

Java byte数组与十六进制字符串互转

Java 加密解密基础 Java byte数组与十六进制字符串互转 Java BASE64加密解密 Java 加密解密之消息摘要算法(MD5 SHA MAC) Java 加密解密之对称加密算法...
  • aubdiy
  • aubdiy
  • 2016年05月27日 23:23
  • 611

Java byte数组与十六进制字符串互转

Java 加密解密基础 Java byte数组与十六进制字符串互转 Java BASE64加密解密 Java 加密解密之消息摘要算法(MD5 SHA MAC) ...
  • JIESA
  • JIESA
  • 2016年11月14日 17:48
  • 1024

Java byte数组与十六进制字符串互转

字符串转换成十六进制字符串方法1:   /**       * 字符串转换成十六进制字符串      */       public static String str2HexStr(St...
  • u010082100
  • u010082100
  • 2017年06月09日 09:51
  • 140

密码学2——Java byte数组与十六进制字符串互转

Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示。 所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的...
  • xcy13638760
  • xcy13638760
  • 2014年12月15日 15:14
  • 545

Java byte数组与十六进制字符串互转

Java byte数组与十六进制字符串互转 Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示。 所以我们就可以把每个byte转换成两个相应的16进...
  • wangdaxia163
  • wangdaxia163
  • 2014年03月24日 17:48
  • 19654
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java byte转二进制字符串
举报原因:
原因补充:

(最多只允许输入30个字)