首页 > 代码库 > boolean与byte的互转
boolean与byte的互转
public static byte[] toBytes(boolean[] arrs){ int f = 0;byte b = 0; byte[] ret = new byte[arrs.length/7 + (arrs.length%7==0?0:1)]; for(int i=0; i<arrs.length; i+=8){ for(int j=0; j<8; j++){ if(i+j<arrs.length && arrs[i+j]){ b+= (1<<(7-j)); } if(j==7){ ret[f++] = b; b = 0; } } } return ret; } public static boolean[] toBoolean(byte[] bs, int length){ boolean[] arrs = new boolean[8*bs.length]; for(int i=0; i<bs.length; i++){ int indx = i*8; byte b = bs[i]; for(int j=7; j>=0; j--){ arrs[indx + j] = (b&1)==1; b = (byte)(b>>1); } } return Arrays.copyOfRange(arrs, 0, length); }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。