日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/10 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解析二进制文件的工具方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 1 一個字節范圍
  • 2 >> 的含義
  • 3 十進制的負數變成二進制
  • 4 0x1 代表什么意思
  • 5字節組轉list
  • 6 list轉字節組
  • 7 截取bytes

1 一個字節范圍

1個字節,取值范圍是-128~127.

正數的最大補碼:01111111,即127.負數的最大補碼10000000,原碼為100000000,即進了一位變成了-128

01111111 為127

2 >> 的含義

是一個“有符號”右移位運算符;它會將運算符左邊的運算對象向右移動運算符右側指定的位數。

右移動之后,高位會自動補0

運算符使用了“符號擴展”:若值為正,則在高位插入0;若值為負,則在高位插入1

byte num = -128; 的二進制為 10000000

3 十進制的負數變成二進制

負數轉換為二進制,就是將其相反數(正數)的補碼的每一位變反(1變0,0變1)最后將變完了的數值加1,就完成了負數的補碼運算。這樣就變成了二進制。

11 >>2(11為int型)1)、11的二進制形式為:0000 0000 0000 0000 0000 0000 0000 10112)、把低位的最后兩個數字移出,因為該數字是正數,所以在高位補零。3)、最終結果是0000 0000 0000 0000 0000 0000 0000 0010。4)、轉換為十進制是3。

4 0x1 代表什么意思

byte nuy = 0x1;String s1 = BitConverter.byteToBit(nuy );System.out.println(s1);值為 00000001

5字節組轉list

public static List<Byte> bytesToList(byte[] bytes) {return Bytes.asList(bytes);}

6 list轉字節組

/*** list轉字節組** @param list list* @return byte[]*/public static byte[] listToBytes(List<Byte> list) {return Bytes.toArray(list);}

7 截取bytes

/*** 截取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);}

總結

以上是生活随笔為你收集整理的解析二进制文件的工具方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。