[计算机科学#4]:二进制如何塑造数字世界(0和1的力量)
【核知坊】:释放青春想象,码动全新视野。
我们希望使用精简的信息传达知识的骨架,启发创造者开启创造之路!!!
内容摘要: 二进制是计算机世界的基石,数学是世界的基石(dog)。本文将简要介绍二进制基本运算,布尔运算,移位运算等,介绍了使用数字对事物进行编码表示。
关键词:二进制 二进制运算 二进制编码
其他相关文章:
[计算机科学#3]:布尔逻辑 (计算机数学基础)-CSDN博客
[计算机科学#1]:计算机的前世今生,从算盘到IBM的演变之路-CSDN博客
[计算机科学#2]:从继电器到晶体管的电子计算机发展史(庞然大物的进化)-CSDN博客
1.二进制运算
二进制与十进制之间的关系已经在上一篇文章讲解过,本段内容将介绍二进制运算法则。
1.1 基础运算
1.1.1 加法
-
0 + 0 = 0
-
0 + 1 = 1
-
1 + 0 = 1
-
1 + 1 = 10(逢二进一)
1.1.2 减法
-
0 - 0 = 0
-
0 - 1 =-1
-
1 - 0 = 1
-
1 - 1 = 0
1.1.3 乘法
-
0 × 0 = 0
-
0 × 1 = 0
-
1 × 0 = 0
-
1 × 1 = 1
1.1.4 除法
二进制除法类似于十进制除法,但更简单。基本规则是逐位相除,直到余数小于除数。
1011 ÷ 10 = 101...1 (11 ÷ 2 = 5...1)
1.2 逻辑(布尔)运算
1.2.1 逻辑与(AND)
-
0 AND 0 = 0
-
0 AND 1 = 0
-
1 AND 0 = 0
-
1 AND 1 = 1
1.2.2 逻辑或(OR)
-
0 OR 0 = 0
-
0 OR 1 = 1
-
1 OR 0 = 1
-
1 OR 1 = 1
1.2.3 逻辑非(NOT)
-
NOT 0 = 1
-
NOT 1 = 0
1.2.4 逻辑异或(XOR)
-
0 XOR 0 = 0
-
0 XOR 1 = 1
-
1 XOR 0 = 1
-
1 XOR 1 = 0
1.3 移位运算
1.3.1 左移(<<), 补0
左移一位相当于乘以2
1011 << 1 = 10110
1.3.2 右移(>>)
右移一位相当于除以2(取整)
1011 >> 1 = 101
1.4 原码|反码|补码
1.4.1 原码
原码是计算机中表示整数的一种最简单的方式,它直接用二进制表示数值的绝对值,并在最高位用一个符号位表示正负。
符号位:0表示正数;1表示负数;数值位,直接表示数值的绝对值。有两个表示零的值:00000000
(正零)和 10000000
(负零)。
1.4.2 反码
反码是对原码的一种改进,主要用于简化加法运算。反码的计算方法如下:
正数的反码:与原码相同。
负数的反码:将原码的数值位取反(0变1,1变0),符号位保持不变。
仍然有两个表示零的值:00000000
(正零)和 11111111
(负零)。
1.4.3 补码
补码是现代计算机中表示有符号整数的最常用方式。补码的计算方法如下:
正数的补码:与原码相同。
负数的补码:负数的补码是其反码加1。
只有一个表示零的值:00000000
。
2.常见计算机存储单位
在计算机中的数据的底层都是二进制,为了估计数据量的大小,于是规定了以下单位:
单位 | 简称 | 换算关系 |
---|---|---|
位 | bit | 1 bit |
字节 | byte | 基本单位 8 bits |
千字节 | KB | 1 KB = 1024 bytes |
兆字节 | MB | 1 MB = 1024 KB = 1,048,576 bytes |
吉字节 | GB | 1 GB = 1024 MB = 1,073,741,824 bytes |
太字节 | TB | 1 TB = 1024 GB = 1,099,511,627,776 bytes |
拍字节 | PB | 1 PB = 1024 TB = 1,125,899,906,842,624 bytes |
艾字节 | EB | 1 EB = 1024 PB = 1,152,921,504,606,846,976 bytes |
3.编码(数字标记)
为什么需要编码?世界上的事物错综复杂,数量庞大,为了更好的在计算机中区分事物,我们使用数字对每个事物进行标记,这个标记的过程就叫做编码。例如一个在上课的教室里有1名教师,30名学生。在计算机表格中我们可以直接为每个人分配一个数,由于人数是有限的,只需要31个数就能对所有人进行标记。这个数可以像一个表格:
二进制序号 | 人物描述 |
---|---|
000 | 教师 |
001 | 学生A |
010 | 学生B |
011 | 学生C |
100 | 学生D |
101 | 学生E |
110 | 学生F |
4.Ascii码对照表
ASCII码(美国信息交换标准代码)是一个基于英文字符的编码系统,用于将字符(字母、数字、符号等)映射为二进制数。以下是ASCII码表的部分内容,展示了一些常用的字符及其对应的十进制和二进制表示,总共128个字符。
十进制 | 二进制 | 字符 | 十进制 | 二进制 | 字符 | 十进制 | 二进制 | 字符 |
---|---|---|---|---|---|---|---|---|
0 | 00000000 | NUL | 32 | 00100000 | 空格 | 64 | 01000000 | @ |
1 | 00000001 | SOH | 33 | 00100001 | ! | 65 | 01000001 | A |
2 | 00000010 | STX | 34 | 00100010 | " | 66 | 01000010 | B |
3 | 00000011 | ETX | 35 | 00100011 | # | 67 | 01000011 | C |
4 | 00000100 | EOT | 36 | 00100100 | $ | 68 | 01000100 | D |
5 | 00000101 | ENQ | 37 | 00100101 | % | 69 | 01000101 | E |
6 | 00000110 | ACK | 38 | 00100110 | & | 70 | 01000110 | F |
7 | 00000111 | BEL | 39 | 00100111 | ' | 71 | 01000111 | G |
8 | 00001000 | BS | 40 | 00101000 | ( | 72 | 01001000 | H |
9 | 00001001 | HT | 41 | 00101001 | ) | 73 | 01001001 | I |
10 | 00001010 | LF | 42 | 00101010 | * | 74 | 01001010 | J |
11 | 00001011 | VT | 43 | 00101011 | + | 75 | 01001011 | K |
12 | 00001100 | FF | 44 | 00101100 | , | 76 | 01001100 | L |
13 | 00001101 | CR | 45 | 00101101 | - | 77 | 01001101 | M |
14 | 00001110 | SO | 46 | 00101110 | . | 78 | 01001110 | N |
15 | 00001111 | SI | 47 | 00101111 | / | 79 | 01001111 | O |
16 | 00010000 | DLE | 48 | 00110000 | 0 | 80 | 01010000 | P |
17 | 00010001 | DC1 | 49 | 00110001 | 1 | 81 | 01010001 | Q |
18 | 00010010 | DC2 | 50 | 00110010 | 2 | 82 | 01010010 | R |
19 | 00010011 | DC3 | 51 | 00110011 | 3 | 83 | 01010011 | S |
20 | 00010100 | DC4 | 52 | 00110100 | 4 | 84 | 01010100 | T |
21 | 00010101 | NAK | 53 | 00110101 | 5 | 85 | 01010101 | U |
22 | 00010110 | SYN | 54 | 00110110 | 6 | 86 | 01010110 | V |
23 | 00010111 | ETB | 55 | 00110111 | 7 | 87 | 01010111 | W |
24 | 00011000 | CAN | 56 | 00111000 | 8 | 88 | 01011000 | X |
25 | 00011001 | EM | 57 | 00111001 | 9 | 89 | 01011001 | Y |
26 | 00011010 | SUB | 58 | 00111010 | : | 90 | 01011010 | Z |
27 | 00011011 | ESC | 59 | 00111011 | ; | 91 | 01011011 | [ |
28 | 00011100 | FS | 60 | 00111100 | < | 92 | 01011100 | \ |
29 | 00011101 | GS | 61 | 00111101 | = | 93 | 01011101 | ] |
30 | 00011110 | RS | 62 | 00111110 | > | 94 | 01011110 | ^ |
31 | 00011111 | US | 63 | 00111111 | ? | 95 | 01011111 | _ |
5.Unicode 编码
Unicode 是一种国际通用的字符编码标准,旨在为世界上所有语言的字符提供统一的编码方案。它解决了传统编码(如ASCII、ISO-8859-1等)在处理多语言文本时的局限性,能够支持多种语言、符号和表情等。
Unicode 有多种编码形式,常见的有:
-
UTF-8:可变长编码,用1到4个字节表示一个字符。兼容ASCII,广泛用于互联网和文件存储。
-
UTF-16:可变长编码,用2或4个字节表示一个字符。在某些操作系统和编程语言中广泛使用。
-
UTF-32:固定长度编码,用4个字节表示一个字符。简单直接,但占用空间较大。
十六进制编码 | 字符 | 描述 | 十六进制编码 | 字符 | 描述 |
---|---|---|---|---|---|
U+0020 | 空格 | U+0030 | 0 | 数字0 | |
U+0021 | ! | 感叹号 | U+0031 | 1 | 数字1 |
U+0022 | " | 双引号 | U+0032 | 2 | 数字2 |
U+0023 | # | 井号 | U+0033 | 3 | 数字3 |
U+0024 | $ | 美元符号 | U+0034 | 4 | 数字4 |
U+0025 | % | 百分号 | U+0035 | 5 | 数字5 |
U+0026 | & | 与号 | U+0036 | 6 | 数字6 |
U+0027 | ' | 单引号 | U+0037 | 7 | 数字7 |
U+0028 | ( | 左括号 | U+0038 | 8 | 数字8 |
U+0029 | ) | 右括号 | U+0039 | 9 | 数字9 |
U+002A | * | 星号 | U+003A | : | 冒号 |
U+002B | + | 加号 | U+003B | ; | 分号 |
U+002C | , | 逗号 | U+003C | < | 小于号 |
U+002D | - | 减号 | U+003D | = | 等号 |
U+002E | . | 句号 | U+003E | > | 大于号 |
U+002F | / | 斜杠 | U+003F | ? | 问号 |
U+0030 | 0 | 数字0 | U+0040 | @ | At符号 |
U+0031 | 1 | 数字1 | U+0041 | A | 大写字母A |
U+0032 | 2 | 数字2 | U+0042 | B | 大写字母B |
U+0033 | 3 | 数字3 | U+0043 | C | 大写字母C |
U+0034 | 4 | 数字4 | U+0044 | D | 大写字母D |
U+0035 | 5 | 数字5 | U+0045 | E | 大写字母E |
U+0036 | 6 | 数字6 | U+0046 | F | 大写字母F |
U+0037 | 7 | 数字7 | U+0047 | G | 大写字母G |
U+0038 | 8 | 数字8 | U+0048 | H | 大写字母H |
U+0039 | 9 | 数字9 | U+0049 | I | 大写字母I |
U+0040 | @ | At符号 | U+004A | J | 大写字母J |
U+0041 | A | 大写字母A | U+004B | K | 大写字母K |
U+0042 | B | 大写字母B | U+004C | L | 大写字母L |
U+0043 | C | 大写字母C | U+004D | M | 大写字母M |
U+0044 | D | 大写字母D | U+004E | N | 大写字母N |
U+0045 | E | 大写字母E | U+004F | O | 大写字母O |
U+0046 | F | 大写字母F | U+0050 | P | 大写字母P |
U+0047 | G | 大写字母G | U+0051 | Q | 大写字母Q |
U+0048 | H | 大写字母H | U+0052 | R | 大写字母R |
U+0049 | I | 大写字母I | U+0053 | S | 大写字母S |
U+004A | J | 大写字母J | U+0054 | T | 大写字母T |
U+004B | K | 大写字母K | U+0055 | U | 大写字母U |
U+004C | L | 大写字母L | U+0056 | V | 大写字母V |
U+004D | M | 大写字母M | U+0057 | W | 大写字母W |
U+004E | N | 大写字母N | U+0058 | X | 大写字母X |
U+004F | O | 大写字母O | U+0059 | Y | 大写字母Y |
U+0050 | P | 大写字母P | U+005A | Z | 大写字母Z |
U+0051 | Q | 大写字母Q | U+005B | [ | 左方括号 |
U+0052 | R | 大写字母R | U+005C | \ | 反斜杠 |
U+0053 | S | 大写字母S | U+005D | ] | 右方括号 |
U+0054 | T | 大写字母T | U+005E | ^ | 上箭头 |
U+0055 | U | 大写字母U | U+005F | _ | 下划线 |
U+0056 | V | 大写字母V | U+0060 | ` | 重音符 |
U+0057 | W | 大写字母W | U+007B | { | 左大括号 |
文章总结
本文主要介绍了计算机中二进制基本运算规则,常见的计算机存储单位,编码方式。
感谢阅览,如果你喜欢该内容的话,可以点赞,收藏,转发。由于 Koro 能力有限,有任何问题请在评论区内提出,Koro 看到后第一时间回复您!!!
其他精彩内容:
参考内容:
Crash Course Computer Science(Y-T)