Computer terminology

Computer unit

比特(Bit)

比特是计算机中最小的数据单位。一个比特只能有两个值之一,即01

比特是数据的基本单位,用于表示计算机中的状态或信息。8个比特构成1个字节

字节(Byte)

字节是由8个比特组成的数据单位。一个字节可以表示256种不同的状态(28 = 256),通常用于表示一个字符。

字符(Character)

字符是指文本中的单个符号,可以是字母、数字、标点符号等。在计算机中,字符通常用一个或多个字节来表示。

ASCII编码中,一个字符通常用一个字节表示。例如,字母“A”的ASCII码是65,对应的二进制表示是01000001

Unicode是一种可以表示世界上所有文字和符号的编码标准。Unicode字符可以使用一个或多个字节来表示。例如,常用的UTF-8编码中,英文字符用1个字节表示,而中文字符通常用3个字节表示。

数据单位的换算

  • 1 比特 (bit) = 1 比特
  • 1 字节 (Byte) = 8 比特 (bit)
  • 1 千字节 (KB) = 1024 字节 (Byte)
  • 1 兆字节 (MB) = 1024 千字节 (KB)
  • 1 吉字节 (GB) = 1024 兆字节 (MB)
  • 1 太字节 (TB) = 1024 吉字节 (GB)

Computer numbers

二进制(Binary)

基本概念

  • 基数:2
  • 符号:0 和 1
  • 位(Bit): 二进制中的每个数字称为“位”,是最小的信息单位。
  • 字节(Byte):一个字节由8个位组成,通常是计算和存储数据的基本单位。

二进制的表示

二进制数通常以一串0和1表示。例如,二进制数 1011 表示的是一个四位二进制数,其中:

  • 第一位(从右到左):1,表示 20的位置
  • 第二位:1,表示 21的位置
  • 第三位:0,表示 22的位置
  • 第四位:1,表示 23的位置
1. 二进制转换十进制

将二进制数的每一位乘以对应的2的幂次,然后求和。

例如:1011(二进制) 转换为十进制。

1x23+0x22+1x21+1x20=8+0+2+1=111 x 2^3 + 0 x 2^2 + 1 x 2^1 + 1 x 2^0 = 8 + 0 + 2 + 1 = 11 2. 二进制转换八进制

转换规则以及步骤:

  • 分组:将二进制数从右向左每三位分一组。
  • 补齐:如果最左边的一组不足三位,则在左边补0,使其成为三位。
  • 转转:将每组三位二进制数转换为对应的八进制数。

示例1: 101110(二进制)转换为八进制

  1. 从右向左分组:101 110
  2. 这里已经满足了三位一组,不需要补齐操作
  3. 将每组转换为对应的八进制:5 6

因此,结果101110(二进制)转为八进制为56

示例2: 1101010(二进制)转换为八进制

  1. 从右向左分组:1 101 010
  2. 最左边的一组不足三位,用0补齐,补齐之后为:001 101 010
  3. 将每组转换为对应的八进制:1 5 2

因此,结果1101010(二进制)转为八进制为152

3. 二进制转换十六进制

二进制和十六进制之间的转换相对简单,因为十六进制的基数是2的幂(即16 = 24)。

下表为二进制到十六进制的直接映射表

二进制十六进制
00000
00011
00102
00113
01004
01015
01106
01117
10008
10019
1010A
1011B
1100C
1101D
1110E
1111F

转换规则以及步骤:

  • 分组:将二进制数从右向左每四位分一组。
  • 补齐:如果最左边的一组不足三位,则在左边补0,使其成为三位。
  • 转转:将每组三位二进制数转换为对应的十六进制数。

示例1: 101110111011(二进制)转换为十六进制

  1. 从右向左分组:1011 1011 1011
  2. 这里已经满足了三位一组,不需要补齐操作
  3. 将每组转换为对应的八进制:B B B

因此,结果101110111011(二进制)转为十六进制为BBB。

示例2: 1101101011(二进制)转换为十六进制

  1. 从右向左分组:11 0110 1011
  2. 补齐之后:0011 0110 1011
  3. 将每组转换为对应的八进制:3 6 B

因此,结果1101101011(二进制)转为十六进制为36B。

二进制的应用

在编程中,二进制数常用于低级别的操作和优化,例如:

  • 位操作:程序员可以使用位操作符(如 &, |, ^,~, <<, >>)直接操作二进制数,以提高效率和性能。
  • 掩码(Masking):通过掩码,可以选择性地操作或读取二进制数的特定位。例如,提取某些位的信息,或者设置某些位的值。

二进制数是计算机科学和数字技术的核心。理解和掌握二进制的基本概念、转换方法和应用场景,对于从事计算机科学和相关领域的学习和工作非常重要。

八进制(Octal)

八进制(Octal)是一种数值表示系统,基数为8,这意味着它使用八个符号来表示数值:0、1、2、3、4、5、6、7。 与二进制(基数2)、十进制(基数10)和十六进制(基数16)一样,八进制在计算机科学中也有特定的应用。

基本概念

  • 基数:8
  • 符号:0、1、2、3、4、5、6、7

八进制的表示

每一个八进制位表示3个二进制位,因为23=8。因此两者之间的转换变得比较简单。

1. 八进制转换二进制

转换规则以及步骤:

  1. 将每个八进制位转换为对应的3位二进制位
  2. 将所有二进制位组合起来

示例1: 157(八进制)转换为二进制

  1. 1对应的二进制位001
  2. 5对应的二进制位101
  3. 7对应的二进制位111

因此,结果157(八进制)转为二进制为001101111。

示例2: 1111(八进制)转换为二进制

  1. 1对应的二进制位001
  2. 1对应的二进制位001
  3. 1对应的二进制位001
  4. 1对应的二进制位001

因此,结果1111(八进制)转为二进制为001001001001。

2. 八进制转换十进制

转换规则以及步骤:

  1. 按位置展开:每一位乘以对应的8的幂次方
  2. 求和

示例1: 157(八进制)转换为十进制

1x82+5x81+7x80=64+40+7=1111 x 8^2 + 5 x 8^1 + 7 x 8^0 = 64 + 40 + 7 = 111 3. 八进制转换十六进制

由于八进制和十六进制都基于二进制的幂次(8 = 23,16 = 24),所以转换时通常先转换为二进制,再转换为目标进制。

转换规则以及步骤:

  1. 八进制转换二进制
  2. 二进制转为十六进制

示例1: 157(八进制)转换为十六进制

  1. 157转为二进制为 001 101 111
  2. 1101111 按四位分组补位为 0000 0110 1111
  3. 将每一组转为对应的十六进制 6F

因此,结果157(八进制)转为十六进制为 6F。

八进制的应用

八进制在早期计算机系统中有一些应用,因为它比二进制更简洁,且转换比十六进制简单。它常用于权限设置(如Unix/Linux文件权限)和低级编程语言中。

十进制(Decimal)

十进制(Decimal)是我们日常生活中最常用的数值表示系统,基数为10。这意味着它使用十个符号来表示数值:0、1、2、3、4、5、6、7、8、9。每一个位置的数值是基于10的幂次方。十进制系统也称为“基10”系统。

十进制的表示

一个十进制数由若干个数字组成,每个数字的位置决定了它的值。每个位置的值是该位置上的数字乘以10的幂次方。

例如,十进制数 2738 可以表示为:

2738=2x103+7x102+3x101+8x1002738 = 2 x 10^3 + 7 x 10^2 + 3 x 10^1 + 8 x 10^0 1. 十进制转换二进制

将十进制数不断除以2,记录每次的余数,直到商为0。最后将余数逆序排列。

示例1: 11(十进制) 转换为二进制

11÷2=5mod111÷2=5mod12÷2=1mod01÷2=0mod111 \div 2 = 5 \bmod 1 \\ 11 \div 2 = 5 \bmod 1 \\ 2 \div 2 = 1 \bmod 0 \\ 1 \div 2 = 0 \bmod 1

因此,逆序排列余数:1011(二进制)

2. 十进制转换八进制

要将十进制数转换为八进制数,可以按以下步骤进行:

  • 反复除以8,记录余数:直到商为0。
  • 余数倒序排列。

示例1: 111(十进制)转换为八进制

111÷8=13mod713÷8=1mod51÷8=0mod1111 \div 8 = 13 \bmod 7 \\ 13 \div 8 = 1 \bmod 5 \\ 1 \div 8 = 0 \bmod 1

因此,逆序排列余数:157(八进制)

3. 十进制转换十六进制

同理,要将十进制数转换为十六进制数,可以按以下步骤进行:

  • 反复除以16,记录余数:直到商为0。
  • 余数倒序排列。

示例1: 47(十进制)转换为十六进制

47÷16=2mod152÷16=0mod247 \div 16 = 2 \bmod 15 \\ 2 \div 16 = 0 \bmod 2

因此,逆序排列余数:2F(十六进制),15(F)

十进制的应用

十进制广泛用于日常生活、科学计算、工程技术和金融等各个领域。我们在数数、做算术运算、测量和记录数据时都使用十进制。

十六进制(Hexadecimal)

基本概念

十六进制(Hexadecimal)也是一种数值表示系统,基数为16, 这意味着它使用16个符号来表示数值:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,其中A至F分别表示十进制的10至15。 十六进制在计算机科学和数字电子学中广泛使用,尤其是在表示二进制数据时。

十六进制表示

使用16个符号来表示数值:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,其中A至F分别表示十进制的10至15。 每个位置上的值是该位置上的符号乘以16的幂次方。

比如 十六进制2AF3可以表示为:

2AF316=2x163+10x162+15x161+3x160=2x4096+10x256+15x16+3=8192+2560+240+3=10995102AF3_{16} = 2 x 16^3 + 10 x 16^2 + 15 x 16^1 + 3 x 16^0 \\ = 2 x 4096 + 10 x 256 + 15 x 16 + 3 \\ = 8192 + 2560 + 240 + 3 \\ = 10995_{10} 1. 十六进制转换二进制

转换规则以及步骤:

  • 将每个十六进制数转换为对应的四位二进制数。
  • 组合所有的二进制数

示例1: 2F(十六进制)转换为二进制

  1. 2对应的二进制0010
  2. F对应的二进制1111

因此,2F(十六进制)转换为二进制是 00101111。

2. 十六进制转换十进制

转换规则以及步骤:

  • 按位置展开:每一位乘以对应的16的幂次方。
  • 求和。

示例1: 2F(十六进制)转换为十进制

2F16=2x161+15x160=32+15=47102F_{16} = 2 x 16^1 + 15 x 16^0 \\ = 32 + 15 = 47_{10} 3. 十六进制转换八进制

转换规则以及步骤:

  • 将十六进制数转换为二进制数。
  • 将二进制数转换为八进制数。

示例1: 157(十六进制)转换为八进制

  1. 十六进制数转换为二进制数
  • 1对应的二进制 0001
  • 5对应的二进制 0101
  • 7对应的二进制 0111

得到的二进制是 000101010111

  1. 二进制转为八进制
  • 按三位分组(补齐) 000 101 010 111
  • 每组位数转为八进制 0 5 2 7

得到的八进制是 527

十六进制的应用

十六进制在计算机科学中有许多应用,尤其是在表示内存地址、颜色编码(如HTML和CSS中的颜色值)、和机器语言等方面。它比二进制更加紧凑,同时比十进制更容易转换为二进制。