二进制
来源:互联网 发布:手机淘宝帐号管理在哪 编辑:程序博客网 时间:2024/06/07 16:56
byte的二进制
public static boolean[] byte2BitArray(byte value){ boolean[] booleans = new boolean[Byte.SIZE]; for(int j=0;j<Byte.SIZE;j++){ booleans[j]=((value >> (Byte.SIZE-j-1)) & 0x1)==1?true:false; } return booleans; }
二进制转Byte
public static byte bitArray2Byte(boolean[] value,int start){ byte result = 0x00; if(start<value.length&&start+Byte.SIZE<value.length){ int i=start; while(i-start<Byte.SIZE){ if(value[i]){ result|=(1<<(Byte.SIZE+start-i-1))&0xff; } i++; } return result; }else{ throw new IndexOutOfBoundsException(); } }
二进制转字节数组
public static byte[] bitArray2Bytes(boolean[] value,int start,int len){ byte[] result=null; if((start+len)*Byte.SIZE<=value.length){ result=new byte[len]; for(int i=start;i<len;i++){ for(int j=0;j<Byte.SIZE;j++){ if(value[(i+1)*Byte.SIZE-j-1]){ result[i]|=(1<<j)&0xff; } } } } return result; }
字节数组的二进制
public static boolean[] bytes2BitArray(byte[] value){ boolean[] booleans = new boolean[value.length*Byte.SIZE];for(int i=0;i<value.length;i++){for(int j=0;j<Byte.SIZE;j++){booleans[(i+1)*Byte.SIZE-j-1]=(value[i]>>j& 0x1)==1;}}return booleans;}
字符串与二进制流相互转换
public static boolean[] str2BitArray(String value){ boolean[] booleans = new boolean[value.length()*Byte.SIZE];byte[] src = value.getBytes(); for(int i=0;i<src.length;i++){for(int j=0;j<Byte.SIZE;j++){booleans[(i+1)*Byte.SIZE-j-1]=((src[i] >> j) & 0x1)==1?true:false;}}return booleans;}public static String bitArray2Str(boolean[] booleans){ StringBuilder sb=new StringBuilder(); for(int i=0;i<booleans.length;i+=Byte.SIZE){ int result=0; for(int j=0;j<Byte.SIZE;j++){ result+=(booleans[i+Byte.SIZE-j-1]?1:0)<<j; } sb.append((char)result);}return sb.toString();}
int与Byte相互转换
public static byte[] int2Bytes(int value){ byte[] src = new byte[Integer.BYTES]; for(int i=0;i<Integer.BYTES;i++){ src[i]=(byte) ((value>>(8*(Integer.BYTES-i-1))) & 0xFF); } return src;}public static int bytes2Int(byte[] value){ int result=0;for(int i=0;i<Integer.BYTES;i++){result<<=8;result|=(value[i]&0xFF);}return result;}
long与byte互转
public static byte[] long2Bytes(long num) { byte[] byteNum = new byte[Long.BYTES]; for (int i = 0; i < 8; ++i) { byteNum[i] = (byte) ((num >> (Long.BYTES-i-1)*Byte.SIZE) & 0xff); } return byteNum; } public static long bytes2Long(byte[] byteNum) { long num = 0; for (int i = 0; i < Long.BYTES; ++i) { num <<= 8; num |= (byteNum[i] & 0xff); } return num; }
0 0
- 二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 什么是最小生成树什么是贪心算法(基本概念)8.1.1
- Android Studio Can't update: no tracked branch
- DuiLib教程--下载和生成
- 支持向量机(support vector machines)-SVM
- IE低版本浏览器支持CSS3属性(圆角、阴影、渐变等)(CSS3 PIE)
- 二进制
- java常见面试题
- 重读 阿里中供系前世今生:马云最神秘的子弟兵二
- Deep Learning 之 参数初始化
- hashmap原理及与hashtable区别
- EditText限制 只能输入0.00 -100保留两位小数
- java利用joup,imageio,base64来实现简历下载为html格式。
- DBCP和C3P0连接MySQL数据库
- CDN技术原理以及所用技术介绍