字节

字符编码--第1章 基础知识

北城以北 提交于 2020-03-01 16:50:38
第1章 基础知识 第1节 二进制 1. 二进制 1697年,德国数理哲学大师莱布尼兹发现二进制。基数为2,逢2进位的计数方法,0、1是它的基本数字符号。因为它只使用0、1两个数字符号,非常简单方便,易于用电子方式实现,在电脑上普遍采用。除二进制(B)外,在电脑上常用的还有八进制(O)、十进制(D)和十六进制(H)等。 2.二进制转换为十进制   各位二进制数与其对应权值的乘积之和即为与该二进制相对应的十进制。 例: 110011.101B =25+24+21+20+2-1+2-3 =51.625D 3.十进制转换为二进制 降幂法:首先写出要转换的十进制数,其次写出所有小于此数的各位二进制权值,然后用要转换的十进制数减去与它最接近的二进制权值,如够减则减去并在相应位记以1;如不够减则在相应位记以0并跳过此位;如此不断重复,直到该数为0为止。 例:将十进制数117转换为二进制数计算过程如下: 小于117的二进制权为64 32 16 8 4 2 1 所以117的二进制为1110101。   除法:把要转换的十进制数的整数部分不断除以2,并记下余数,直到商为0为止。 例:将十进制数117转换为二进制数计算过程如下: 所以117的二进制为1110101。 计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。 第2节 位 位,英文名称是Bit,亦称二进制数位

字节转为16进制输出

半世苍凉 提交于 2020-02-28 14:28:36
#字节转为16进制输出 字节码文件通过hexadecimal格式打开时,显示的为16进制的字符表示 每一个16进制串代表连个字节例如 -84 -19 两个字节表示为 aced private static int readTimes = 1; public static void readByte2Hex(byte[] bs) { byte[] buffer = new byte[2]; int tmp1, tmp2, tmp3; for (int i = 0; i < bs.length; i++) { if (i % 2 == 0) { buffer[0] = bs[i]; } if (i % 2 == 1) { buffer[1] = bs[i]; tmp1 = (int) buffer[0]; tmp1 = tmp1 << 8; tmp1 = tmp1 & 0x0000FF00; tmp2 = (int) buffer[1]; tmp2 = tmp2 & 0x000000FF; // 255 tmp3 = tmp1 | tmp2; sysOutBytes(tmp3); readTimes++; } } } private static void sysOutBytes(int tmp3) { System.out.println(tmp3); String hex =