计算机数值进制转换

时间:2024-02-25 17:54:01

数值转换

二、八、十、十六进制的数码:

二进制数码:0,1

八进制数码:0,1,2,3,4,5,6,7

十进制数码:0,1,2,3,4,5,6,7,8,9

十六进制数码:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

二进制的一位数计算       

   加法                  减法

  0+0=0                0-0=0

  0+1=1                1-0=1

  1+1=10               1-1=0

十进制转二进制:

方法是用:除二取余法

例:9÷2=4----1,2 我们称为商(取整),1 我们称为余(余数)
 
除二取余法:依次除二求余直至最后为 0,然后从下向上依次写下每次的余数组成新数
 
 
二进制的数码:0 和 1,“逢二进一”。

二进制数的表示形式:方法一:(100001)2 方法二:100001B

二进制的权位:n 位上的数值代表是 2n-1,如二进制数 100001 到底是我们生活当中十进制的几呢?
 
二进制转换十进制:方法是按权位求和
 
    二进制数 100001=1*26-1+0*25-1+0*24-1+0*23-1+0*22-1+1*21-1=32+1=33(注:中间计算过程都是十进制)
 
 
 
 
十六进制数运算规律是逢十六进一,即基 R=16=2^4,通常在表示时用尾部标志 H 或下标 16 以示区别。
 

二进制数与十六进制数之间的转换:

由于 4 位二进制数恰好有 16 个组合状态,即 1 位十六进制数与 4 位二进制数是一一对应的.十六进制数转换成二进制数,
每四位一组只要将每一位十六进制数用对应的 4 位二进制数替代即可― ― 简称四位一分
 

二进制数转换为十六进制数:

分别向左,向右每四位一组,依次写出每组 4 位二进制数所对应的十六进制数― ― 简称四位合一位
 
 
 

二进制数与八进制数之间的转换:

二进制与八进制互转和二进制转十六进制相似只是每三位二进制转成一位八进制,而一位八进制数转换成三位二进制数
 
 
 
 

机器数与真值

在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.
 
1. 机器数
 
一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号,正数为0 , 负数为1
 
计算机字长为 8 位
例:十进制中的数 +3 ,转换成二进制就是 00000011。
    如果是 -3 ,转换成二进制就是就是10000011 。
    这里的 00000011 和 10000011 就是机器数。
2. 真值
 
因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如上面的有符号数 10000011,其最高位 1 代表负,其真正数值是 -3 而不是形式值 131(10000011 转换成十进制等于 131)。所以,为区别
起见,将带符号位的机器.数对应的真正数值称为机器数的真值。
 
例:0000 0001 的真值 = +000 0001 = +1,1000 0001 的真值 = –000 0001 = –1
 
 

原码、反码及补码

根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法, 这样计算机运算的设计就更简单了.
为了将符号位参与运算, 并且只保留加法,从而简化计算机运算,发明了原码、反码和补码。
 
原码,反码,补码.都是有符号的用二进制表示数的方法,均由符号位和数值位构成(正数的原码反码补码都是其本身)
 
1. 原码
 
原码是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值.
例:比如如果是 8 位二进制
[+1]原 = 0000 0001
[-1]原 = 1 第一位是符号位.余 000 0001下 7 位是数值位。 因为第一位是符号位, 所以 8 位二进制数的取值范围就是:
[1111 1111 , 0111 1111]即[-127 , 127]
原码是人脑最容易理解和计算的表示方式
 
2. 反码
 
反码的表示方法是:

正数的反码是其本身.

负数的反码是在其原码的基础上,符号位不变,其余各个位取反.

[+1] = [00000001]原 = [00000001]反
[-1] = [10000001]原 = [11111110]反
 
可见如果一个反码表示的是负数, 人脑无法直观的看出来它的数值. 通常要将其转换成原码再计算.
 
3. 补码
 
补码的表示方法是:

正数的补码就是其本身.

负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1.(即在反码的基础上+1).

[+1] = [00000001]原 = [00000001]反 = [00000001]补
[-1] = [10000001]原 = [11111110]反 = [11111111]补
 
对于负数, 补码表示方式也是人脑无法直观看出其数值的. 通常也需要转换成原码在计算其数值.
 
在计算机系统中,数值一律用补码来表示(存储)。主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃;补码与原码的转换过程几乎是相同的。