我ASCII三种进制对照表、二进制、字节

2025-10-13 12:19:14

一、ASCII三种进制对照表

换行、空格等对照表

二、JAVA代码中,各种进制的表现形式:

十进制表示:104

二进制表示:0b01101000

十六进制表示:0x68

总结:二进制前加0b,十六进制前加0x

三、JAVA中类型长度:

byte:1个字节8位;

short:2个字节16位;

int:4个字节32位;

long:8个字节64位;

浮点型:

float:4个字节32位;

double:8个字节64位;

注:默认的是double类型,如3.14是double类型的,加F(3.14F)就是double类。

char:2个字节

Boolean:并未指明

四、buffer的大端还是小端

小端(Little Endian)是:低位在前,高位在后的存储方式,和普通记忆方式相反。

32位整型数据:

07 D4 E1 F2

其中F2为第0字节,E1为第1字节,D4为第2字节,07为第3字节

小端的存储顺序是:

F2 E1 D4 07

在寄存器中就是:

11110010 11100001 11010100 00000111

五、简单buffer的定义:

ByteBuffer byteBuffer = ByteBuffer.allocate(10).order(ByteOrder.LITTLE_ENDIAN);

byteBuffer.put(allBytes);

byteBuffer.flip();

allocate参数就是多少个字节的buffer长度;

order的参数就是“小端”

put就是把字节数组放进buffer,注意长度不要越界

flip就是指针指向0。因为前面put的时候,指针会一位一位的后移,后面在用这个buffer时,指针在最后,显然不可以的。

从buffer中取数据:

short total = byteBuffer.getShort();

这就会取出2个字节,参看上面长度。而且取出的排序也是按照前面的“小端”排序,也就是小的反而在前面。

六、&0xff的作用

0xff表示二进制1111 1111

&操作:全1为1,否则为0

那么0xff和任意位数多于自己的二进制数进行&操作,就是保留低8位;

比如0xff & 1111 0000 1111 0000,0xff需要线补8个0,也就是0000 0000 1111 1111,然后再和1111 0000 1111 0000进行&操作,此时结果为1111 0000

这样就能实现保留低8位的作用。