java中基本数据类型数据转化成byte[]数组存储
java中基本数据类型数据转化成byte[]数组存储
1 package com.wocqz.test; 2 3 public class testByte { 4 5 /** 6 * int 转成byte数组 7 * */ 8 public static byte[] int_byte(int id){ 9 //int是32位 4个字节 创建length为4的byte数组 10 byte[] arr=new byte[4]; 11 12 arr[0]=(byte)((id>>0*8)&0xff); 13 arr[1]=(byte)((id>>1*8)&0xff); 14 arr[2]=(byte)((id>>2*8)&0xff); 15 arr[3]=(byte)((id>>3*8)&0xff); 16 17 return arr; 18 } 19 20 /** 21 * byte数组 转回int 22 * */ 23 public static int byte_int(byte[] arr){ 24 25 int i0=(int)((arr[0]&0xff)<<0*8); 26 int i1=(int)((arr[1]&0xff)<<1*8); 27 int i2=(int)((arr[2]&0xff)<<2*8); 28 int i3=(int)((arr[3]&0xff)<<3*8); 29 30 return i0+i1+i2+i3; 31 } 32 33 public static void main(String[] args) { 34 35 byte[] int_byte = testByte.int_byte(10); 36 37 for (byte b : int_byte) { 38 System.out.println("------->"+b); 39 } 40 41 42 int byte_int = testByte.byte_int(int_byte); 43 System.out.println("<----------"+byte_int); 44 45 } 46 }
先说一下&x0FF 16进制 转成二进制是11111111
&按位与算符
两个操作数中位都为1,结果为1
如果两个操作中位一个1另一个0 ,结果为0
即运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1;
在这里最主要的作用是 清零、取一个数中指定位
当我们将id转化为二进制后,向又移动几个8位 就可以在&上x0FF就可以得到第几个字节的二进制 在转化成是进制 存储在byte数组中 不管int类型 long等类型也是一样
(自我理解 -------------------------------------------------------------------------------------------------- 不对勿喷)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 为DeepSeek添加本地知识库
· 精选4款基于.NET开源、功能强大的通讯调试工具
· DeepSeek智能编程
· 大模型工具KTransformer的安装
· [计算机/硬件/GPU] 显卡