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

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

相关文章推荐

把byte转化成2进制字符串

public class ByteToBinary { /** * 把byte数组转化成2进制字符串 * @param bArr * @return */ public...
  • GEOLO
  • GEOLO
  • 2011-01-25 09:48
  • 6390

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

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

java 中,将Int 或者 byte 数据用二进制或者16进制打印出来

我们想看到byte类型的二进制打印结果,想看到int类型的二进制打印结果,还有16进制的; 如何做呢?这里总结一个小代码,便于以后查询: int 类型,打印成二进制数据 int iV...

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

public class HexConver { public static void main(String[] args) { String content = "这是一个测试"; S...

字节(byte)、二进制、字节流、字符流相关概念分析

1.字节:     字(Byte)节是长度单位。位(bit)也是长度单位。 因为计算机通信和存储的时候都是以010101这样的二进制数据为基础的,这儿的一个0和1占的地方就叫bit(位),即一个二...

java中的二进制int与byte互转以及&0xff的作用

1.      按位与&  :两位全位1,结果才为1; 0&0=0;  0&1=0  ; 1&1=1 如:51 &5 =0011 0011 & 000...

[论坛解答]java的&0xFF问题

在论坛看到一个问题,花了点时间调查,自己随笔记录下来。 问题 ByteBuffer buf = ByteBuffer.allocate(32767); buf.putLong(0,7...

字符串与二进制数组相互转化(数据加密原理)

string str = "你好好呀,北京天安门!";             //把字符串转化为byte二进制数组             byte[...

golang(Go语言) byte/[]byte 与 二进制形式字符串 互转

效果把某个字节或字节数组转换成字符串01的形式,一个字节用8个”0”或”1”字符表示。比如: byte(3) –> “00000011” []byte{1,2,3} –> “[00000001 0...

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

Java byte[] 字节数组 转 二进制 八进制 十进制 十六进制字符串
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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