Java Int unpacking(分解)packing
来源:互联网 发布:mac系统最新版本10.13 编辑:程序博客网 时间:2024/06/07 15:58
在ImportNew上看到一个很有意思的代码片,功能大意为把int拆开,看看其由哪些字节组成(unpacking),以及把四个字节组合成一个int(packing )。
首先脑补一下两个概念
排列表示一个对象的字节有两个通用的规则。一个w位的整数,位表示为[Xw-1, Xw-2,...X1,X0], 其中,Xw-1为最高有效位,X0为最低有效位。某些机器选择在存储器中,按照从最低有效字节到最高有效字节的顺序存储对象----最低有效字节在最前面的方式成为小端法。
按照从最高有效字节到最低有效自己的顺序存储----最高有效字节在最前面的方式成为大端法。
把int分解(Unpacking)成4个字节
byte[] unpackBigEndian(intx) { returnnew byte[] { (byte)(x >>>24), (byte)(x >>>16), (byte)(x >>> 8), (byte)(x >>> 0) };} byte[] unpackLittleEndian(intx) { returnnew byte[] { (byte)(x >>> 0), //取最低8位,原来32位强转为byte后,只保留了最低8为 (byte)(x >>> 8), //同理 (byte)(x >>>16), (byte)(x >>>24) };}
把4个字节包装(packing)成一个int
int packBigEndian(byte[] b) { return(b[0] &0xFF) << 24 | (b[1] &0xFF) << 16 | (b[2] &0xFF) << 8 | (b[3] &0xFF) << 0;} int packLittleEndian(byte[] b) { return(b[0] &0xFF) << 0 | (b[1] &0xFF) << 8 | (b[2] &0xFF) << 16 | (b[3] &0xFF) << 24;}
0 0
- Java Int unpacking(分解)packing
- Commands for Compression/decompression and Packing/unpacking
- python学习:函数参数的packing和unpacking传递
- LS 21 Packing(DP)
- 1149 - Bin Packing(贪心)
- poj2782 Bin Packing(贪心)
- UVA1149:Bin Packing(装箱)
- (简单贪心)Bin Packing
- [USACO Section 1.4] Packing Rectangles (模拟)
- uva 102 - Ecological Bin Packing(暴力)
- UVA 10162 Bin Packing(贪心)
- 【uva】1149-Bin Packing(贪心 + STL )
- UVA 1149 bin packing (贪心)
- uva 1149 Bin Packing(贪心)
- java基础(字符串分解类)
- java求最大公约数(分解质因数)
- 最优分解问题(Java版)
- 分解质因数(Java入门题)
- C++资源大全
- AvlTree的插入删除第k大
- UGUI中Camera属性的简单介绍
- 杭电ACM 1002:A+B Problem II
- (译文)12个简单(但强大)的JavaScript技巧(一)
- Java Int unpacking(分解)packing
- 操作系统学习笔记:死锁
- Remove Duplicates from Sorted Array II
- 蓝桥杯——李白打酒(正式版)
- POJ 3233 - Matrix Power Series(等比矩阵求和)
- MySQL基础之学习笔记
- delete and rebuild 执行 link.exe 时出错的解决方案
- 论SOA架构的几种主要开发方式
- java多进程 -CD7-孙鑫-(5)