前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解析二进制文件的工具方法

解析二进制文件的工具方法

作者头像
一写代码就开心
发布2022-08-23 15:33:43
1.3K0
发布2022-08-23 15:33:43
举报
文章被收录于专栏:java和pythonjava和python

目录

1 一个字节范围

1个字节,取值范围是-128~127.

正数的最大补码:01111111,即127.负数的最大补码10000000,原码为100000000,即进了一位变成了-128

代码语言:javascript
复制
01111111      为127
在这里插入图片描述
在这里插入图片描述

2 >> 的含义

是一个“有符号”右移位运算符;它会将运算符左边的运算对象向右移动运算符右侧指定的位数。 右移动之后,高位会自动补0 运算符使用了“符号扩展”:若值为正,则在高位插入0;若值为负,则在高位插入1

代码语言:javascript
复制
 byte num = -128;      的二进制为   10000000

3 十进制的负数变成二进制

负数转换为二进制,就是将其相反数(正数)的补码的每一位变反(1变0,0变1)最后将变完了的数值加1,就完成了负数的补码运算。这样就变成了二进制。

代码语言:javascript
复制
11 >>2(11为int型)

1)、11的二进制形式为:0000 0000 0000 0000 0000 0000 0000 1011

2)、把低位的最后两个数字移出,因为该数字是正数,所以在高位补零。

3)、最终结果是0000 0000 0000 0000 0000 0000 0000 0010。

4)、转换为十进制是3。

4 0x1 代表什么意思

代码语言:javascript
复制
 byte nuy = 0x1;
 String s1 = BitConverter.byteToBit(nuy  );
 System.out.println(s1);


值为   00000001

5字节组转list

代码语言:javascript
复制
 public static List<Byte> bytesToList(byte[] bytes) {
    return Bytes.asList(bytes);
  }

6 list转字节组

代码语言:javascript
复制
/**
   * list转字节组
   *
   * @param list list
   * @return byte[]
   */
  public static byte[] listToBytes(List<Byte> list) {
    return Bytes.toArray(list);
  }

7 截取bytes

代码语言:javascript
复制
/**
   * 截取bytes
   *
   * @param bytes 字节组
   * @param from 起始位
   * @param to 结束位
   * @return bytes
   */
  public static byte[] subBytes(byte[] bytes, int from, int to) {
    return Arrays.copyOfRange(bytes, from, to);
  }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • 1 一个字节范围
  • 2 >> 的含义
  • 3 十进制的负数变成二进制
  • 4 0x1 代表什么意思
  • 5字节组转list
  • 6 list转字节组
  • 7 截取bytes
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档