计算机存储与进制转换

计算机存储与进制转换

    • 1. 计算机存储单元
    • 2. 进制转换
      • 十进制
      • 二进制
      • 二进制转十进制
      • 十进制转二进制:
      • 十进制转二进制:
      • 二进制转八进制:
      • 二进制转十六进制:
    • 3.信息在计算机中的表示
      • 整数部分(定点数)
      • 小数部分(浮点数)
      • 文字符号的表示
    • 4. 原码,反码、补码
    • 5. 溢出

1. 计算机存储单元

  1. 位(bit): 二进制中表示一位,家里的宽带使用的单位。
  2. 字节(Byte):八个二进制位等于一字节,计算机数据存储的最小单位
  3. 千字节(KB) : 1024字节(Byte) = 1千字节(KB)
  4. 兆字节(MB): 1024千字节 (KB)=1兆字节 (MB)
  5. 还有GB TB EB ZB。。。

2. 进制转换

十进制

  1. 十进制数是由10个不同的符号(0123456789)组合表示的,用字符 D表示十进制或默认不写,这些符号处于十进制数中不同的位置,其权值各不相同,例如:
    2886.32D= 2 * 10 3 ^3 3 + 8 * 10 2 ^2 2 + 8 * 10 1 ^1 1+6 * 10 0 ^0 0+3 * 10 − 1 ^{-1} 1+2 * 10 − 2 ^{-2} 2
  2. 在十进制数中,基数是10,它表示这种计数制一共使用10个不同的数字符号,计数规则 是逢十进一。

二进制

  1. 使用比特来表示的数称为二进制数,它的基数是2 用字符B表示 ,只使用两个不同的数字符号,即0和1,采用逢二进一的计数规则

二进制转十进制

(110.11) 2 _2 2 =1 * 2 2 ^2 2+1 * 2 1 ^1 1+ 0*2 0 ^0 0+1 * 2 − 1 ^{-1} 1 + 1 * 2 − 2 ^{-2} 2=(6.75) 10 _{10} 10

十进制转二进制:

十进制为整数:除以2逆序取余 。
计算机存储与进制转换_第1张图片

十进制转二进制:

十进制为小数:乘以2顺序取整 (0.6875) 10 _{10} 10=(0.1011) 2 _2 2
计算机存储与进制转换_第2张图片

二进制转八进制:

八进制数 二进制数
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

如:

2 4 . 2 2
010 100 . 010 010

二进制转十六进制:

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

如:

3 F . A 3
0011 1111 . 1010 0011

3.信息在计算机中的表示

整数部分(定点数)

  • 无符号整数:一般用于表示地址、索引等正整数,一般有8位、16位、32、64位 更多。。。

    • 8个二进制位表示的正整数其取值范围是:0~255(2 8 ^8 8-1) 00000000表示0,11111111 表示255
    • 16个二进制位表示的正整数其取值范围是:0~65535(2 16 ^{16} 16-1)
    • n个二进制位表示的正整数其取值范围是0~2 n ^n n-1
  • 带符号整数:使用第一个二进制位作为符号位,0表示正数,1表示负数,其他的则和来表示数值的大小

  • 00101011=+43,10101011=-43
    0.314*10 100 ^{100} 100
  • 负整数在计算机内不采用原码而采用补码的方法进行表示。

小数部分(浮点数)

  • 任何一个实数总可以表达成一个乘幂和一个纯小数之积。乘幂中的指数部分用来指出实数中小数点的位置,纯小数部分决定了有效数字(一般要求纯小数部分的首位为非0的有效数值),通常阶码位数越多,可表示的实数的范围越大,尾数越多,可表示的精度越高
  • 在计算机中存储时也不会存储所有的位,只会存储0.314 与 阶码。
    计算机存储与进制转换_第3张图片

文字符号的表示

  • 西文字符集由拉丁字母、数字、标点符号、特殊符号组成,目前计算机中使用最广泛的西文字符集及其编码是ASCII字符集和ASCII码,即美国标准信息交换码,它已被 国际标准化组织(ISO)批准为国际标准,在全世界通用,基本的ASCII 字符集共有128个字符,包括96个可打印字符(常用的字母、数字、标点符号等)和32个控制字符,每个字符使用7个二进制位编码(叫做标准ASCII码)。
  • 虽然标准ASCII码是7位的编码,但由于字节是计算机中最基本的存储和处理单位,帮一般仍使用一个字节来存储一个ASCII码,每个字节中多余出来的一位(最高位)在计算机内部通常保持0,而在数据传输时可用作奇偶校验位。
  • 计算机中每一个符号都是由编码数字表示,如ASCII中‘A’==65

4. 原码,反码、补码

  • 正数的原码,反码,补码是一样的。
  • 负数 -43
    • 原码:十进制转为二进制 ************ 10101011 (第一位为1表示负数)
    • 反码:符号位不变,原码每一位取反 11010100
    • 补码:反码加1*************************11010101
      • 8个二进制位补码表示取值范围是 -128~127(-2 7 ^7 7 ~ 2 7 ^7 7-1)
      • 16个二进制位补码表示取值范围是 -32768~32767(-2 15 ^{15} 15 ~ 2 15 ^{15} 15-1)
      • n个二进制位补码表示取值范围是 -2 n ^{n} n ~ 2 n ^{n} n-1
      • 注意相同的位数,补码表示比原码表示多表示一个数。
  • 计算机为什么使用补码进行计算,原因是为了让CPU的加法电路能处理减法,而不用重新设计减法电路 :
    • 1-1=1+(-1)=0
    • 注意正数三码是一样的,所以这里正数1的补码都是0000 0001
    • 方案一(原码):(原码)0000 0001+(原码)1000 0001 = 1000 0010=-2 10 _{10} 10
    • 方案二(反码):(反码)0000 0001+(反码)1111 1110 = (反)1111 1111=(原)1000 000 转为十进制 等于-0,也有可能会出现0000 0000 正0的情况,这两种情况在数学中是一样的,而反码表示这同一种情况用了两个方式,显然不合理。
    • 方案三(补码):(补码)0000 0001+(补码)1111 1111 =(补码)0000 0000=原码 0000 0000 零的三码也是一样的
  • 模,同余
    • “模”是指一个计量系统的计数范围。如时钟等。计算机也可以看成一个计量机器,它也有一个计量范围,即都存在一个“模”。例如: 时钟的计量范围是0~11,模=12。表示n位的计算机计量范围是0~2(n)-1,模=2(n)。
    • “模”实质上是计量器产生“溢出”的量,它的值在计量器上表示不出来,计量器上只能表示出模的余数。任何有模的计量器,均可化减法为加法运算。例如:假设当前时针指向10点,而准确时间是6点,调整时间可有以下两种拨法:一种是倒拨4小时,即:10-4=6;另一种是顺拨8小时:10+8=12+6=6 在以12模的系统中,加8和减4效果是一样的,因此凡是减4运算,都可以用加8来代替。对“模”而言,8和4互为补数。实际上以12模的系统中,11和1,10和2,9和3,7和5,6和6都有这个特性。共同的特点是两者相加等于模。
    • 对于计算机,其概念和方法完全一样。n位计算机,设n=8, 所能表示的最大数是11111111,若再加1成为100000000(9位),但因只有8位,最高位1自然丢失。又回了00000000,所以8位二进制系统的模为2^8。在这样的系统中减法问题也可以化成加法问题,只需把减数用相应的补数表示就可以了。把补数用到计算机对数的处理上,就是补码。
  • 8位二进制可以表示0-255,256种状态
    有:255-3 =(255 + 253)mod 256
    其中256为模,3与253同余。
  • 补码的减法变加法 例子;
    有 5-6=-1 下面是计算机使用二进制补码进行运算的过程
    5的8位二进制是0000 0101 因为正数补码也是0000 0101
    -6的8位二进制是1000 0110 取反加一得补码1111 1001
    补码相加得1111 1111 减一取反得原码正是:1000 0001 转为十进制 得-1
  • 8位二进制的取值范围是-128~127,其中的-128的原码是1000 0000补码也是1000 0000,补码表示0有两种方式0000 000与1000 0000,其中0000 0000 表示0 、1000 0000就表示-128。

5. 溢出

二进制位 1111 1111 +1=0000 0000 溢出了。

你可能感兴趣的:(计算机基础)