计算机中的数据存在形式2


上一篇中提到了二进制与十进制的转化,以及身边的数据是如何保存在计算机中的。本次来谈谈另一种进制十六进制

我们知道二进制是计算机所能识别的数字,但是计算机中的数据并不全都是以二进制储存的,因为二进制的储存能力有限,在上一篇中提到,系统规定8位为一个字节,而每4个字节可以转换成为一个十六进制的数据。这样,就能减少计算机储存数据需要的位了。

十六进制,十进制,二进制

十六进制 十进制 二进制
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
A 10 1010
B 11 1011
C 12 1100
D 13 1101
E 14 1110
F 15 1111

由上图,我们可以知道二进制,十进制,十六进制之间的转化关系。

ASCII表中的字母部分

编号 字母 二进制码 编号 字母 二进制码
65 A 1000001 97 a 1100001
66 B 1000010 98 b 1100010
67 C 1000011 99 c 1100011
68 D 1000100 100 d 1100100
69 E 1000101 101 e 1100101
70 F 1000110 102 f 1100110
71 G 1000111 103 g 1100111
72 H 1001000 104 h 1101000
73 I 1001001 105 i 1101001
74 J 1001010 106 j 1101010
75 K 1001011 107 k 1101011
76 L 1001100 108 l 1101100
77 M 1001101 109 m 1101101
78 N 1001110 110 n 1101110
79 O 1001111 111 o 1101111
80 P 1010000 112 p 1110000
81 Q 1010001 113 q 1110001
82 R 1010010 114 r 1110010
83 S 1010011 115 s 1110011
84 T 1010100 116 t 1110100
85 U 1010101 117 u 1110101
86 V 1010110 118 v 1110110
87 W 1010111 119 w 1110111
88 X 1011000 120 x 1111000
89 Y 1011001 121 y 1111001
90 Z 1011010 122 z 1111010

二进制与十六进制的转换

前面,我们了解了二进制、十进制与十六进制之间的关系后,可以开始实际应用了。

在此之前,我们要知道二进制与十六进制的转换方法。

二进制转为十六进制只需对照上面的表格就可以完成转换。

十六进制转换成二进制则是将每一个数据(0-F)拆成4个2进制数据,分别按照表格的对应关系写下来,不足4位的用零补齐。

注意:补零只能在高位与低位之间补充。

与、或、非

”与、或、非“是一种运算方式,就像四则运算是数学中的运算法则一样。

与如同并且。

现在我们将2个真进行相与,因为都是真,所以我们得到的结果是真。如果将真与假进行相与运算。得到的就是假。当然,2个假进行相与运算,得到的就是假了。

即一假则假

或从字面理解就是或者。

现在我们将2个真进行或运算,因为都是真,所以我们得到的结果是真。如果将真与假进行相或运算。得到的就是真。当然,2个假进行相或运算,得到的就是假了。

即一真则真

而非则是反过来的意思。

即我们将原来的真改为假,假改为真。

十六进制储存数据

e.g.

  • 现在有一间房间,房间中有的座位有坐人,有的座位是空位。

    假设现在该房间的座位有人的为x,空位为o,座位分布情况如下:

1 x o x o x o o
2 o o x o x o o
3 x x x o x o o
4 o o o x x x o
5 o o o o o o o
6 o o o o o o o

我们可以像这样用一张表格来记录,但计算机是没办法记录表格的,在计算机中的表格最终是以图像的形式被记录的。

如果我们定义座位有人记为1,没人记为0。我们的座位信息又可以表示为:101010000101001110100000111
相对计算机保存图片而言,这串数据就容易保存了。

按照之前的转换规则,我们又可以将二进制的数据4位一组的进行转换。得到的结果是:A853A07

如果用二进制储存这串数据的话,让我们人来看,会是一大串难读的东西。但如果转换后,我们就能轻松读懂了。

  • 现在有一个公司,记某个部门经理能进房间为1,不能则为0。将公司的房间从一楼的右边开始从0进行编号。当前该经理的权限为FA3,根据规则对其进行转换。F=1111A=10103=11因为3转换后不足4位,所以进行补零。所以最终得到的结果是FA3=111110100011,而不是FA3=1111101011。所以该经理能进的房间是编号为0、1、5、7、8、9、10、11的房间。

  • 我们规定:
    A权限为:110101001
    B权限为:101100110
    C权限为:010010101
    1依旧为能进房间,0为不能。
    现在有职员张三,李四。张三拥有AB权限,李四拥有BC权限。同时拥有他们,这是或的关系。所以,我们想要知道他们分别拥有什么权限,就对他们同时拥有的权限进行或运算。运算后的结果是张三拥有1EF即能进111101111权限,李四拥有1F7即能进111110111权限。

总结

计算机只能通过二进制储存数据,储存的结果难以让人直接理解。十六进制让人能够相对直观看懂内容。


文章作者: 牟勇
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 牟勇 !
  目录