解析二进制文件的工具方法
生活随笔
收集整理的這篇文章主要介紹了
解析二进制文件的工具方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 1 一個字節范圍
- 2 >> 的含義
- 3 十進制的負數變成二進制
- 4 0x1 代表什么意思
- 5字節組轉list
- 6 list轉字節組
- 7 截取bytes
1 一個字節范圍
1個字節,取值范圍是-128~127.
正數的最大補碼:01111111,即127.負數的最大補碼10000000,原碼為100000000,即進了一位變成了-128
01111111 為1272 >> 的含義
是一個“有符號”右移位運算符;它會將運算符左邊的運算對象向右移動運算符右側指定的位數。
右移動之后,高位會自動補0
運算符使用了“符號擴展”:若值為正,則在高位插入0;若值為負,則在高位插入1
byte num = -128; 的二進制為 100000003 十進制的負數變成二進制
負數轉換為二進制,就是將其相反數(正數)的補碼的每一位變反(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);值為 000000015字節組轉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);}總結
以上是生活随笔為你收集整理的解析二进制文件的工具方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MacOS下IDEA设置智能提示不区分大
- 下一篇: 解决mac升级后,出现的 xcrun: