计算机——常用数制及转换

(一)常见的进制数

十进制的基数为10,它有十个数码,即0~9。逢十进一,借一当十。用字母D表示十进制。

十进制数整数部分从小数点起自右向左记录位数,个位记为0,十位记为1,百位记为2,照此类推。

计算机——常用数制及转换_第1张图片

二进制的基数为2,只有2个数码:0和1。逢二进一,借一当二。用字母B表示二进制。

和十进制类似,也用2为底的"按权展开式"表示

计算机——常用数制及转换_第2张图片

八进制的基数为8,它有8个数码:0~7。八进制数逢八进一,用字母O表示八进制。

计算机——常用数制及转换_第3张图片

十六进制的基数为16,它有8个数码:0,1,2,3,4,5,6,7,8,9,A,B , C , D , E, F 。

A表示10,B表示11,C表示13..... A~F(10~15)

用字母H表示十六进制。

计算机——常用数制及转换_第4张图片

(二)不同数制之间的转换

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

若要将二进制、八进制、十六进制等非十进制数转换为十进制数,只需将给定的非十进制数按权展开,按照求和的形式就可计算出相应的十进制数。

计算机——常用数制及转换_第5张图片
  1. 十进制转换为二进制、八进制、十六进制

将十进制数转换为二进制、八进制、十六进制,其整数部分和小数部分的转换规则如下

整数部分:用除R(基数)取余法则(先余为低,后余为高) 就是倒序取余数。

小数部分:用乘R(基数)取整法则(先整为高,后余为低)就是顺序取余数。

计算机——常用数制及转换_第6张图片
计算机——常用数制及转换_第7张图片
计算机——常用数制及转换_第8张图片
  1. 二进制与八进制、十六进制之间的转换

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

二进制:000 001 010 011 100 101 110 111

二进制转换八进制

整数部分从小数点向左,小数部分从小数点向右,3位并1位,不足位补0。

八进制转换二进制

整数部分从小数点向左,小数部分从小数点向右,1位拆3位,不足位补0。

计算机——常用数制及转换_第9张图片

十六进制 : 0 1 2 3 4 5 6 7 8 9 A

二进制: 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010

十六进制: B C D E F

二进制: 1011 1100 1101 1110 1111

二进制转换十六进制

整数部分从小数点向左,小数部分从小数点向右,4位并1位,不足位补0。

十六进制转换二进制

整数部分从小数点向左,小数部分从小数点向右,1位拆4位,不足位补0。

计算机——常用数制及转换_第10张图片

计算机——常用数制及转换_第11张图片

(三)逻辑运算

逻辑运算分为或、与、非、异或四种。

(1)或运算

运算符号:“V”或者“+”

运算规则:0V0=0 0V1=1 1V0=1 1V1=1

规则说明:在或运算中,当两个逻辑值有一个为1时,结果就为1,否则为0。

(2)与运算

运算符号:“Λ ”或者“·

运算规则:0Λ0=0 0Λ 1=0 1Λ 0 =0 1Λ 1=1

规则说明:在与运算中,当两个逻辑值为1时,结果才为1,否则为0;

(3)非运算

运算符号:“~”

运算规则:~0=1 ~1=0

规则说明:在非运算中,对每位逻辑值取反。

(4)异或运算

运算符号:“⊕”

运算规则:0⊕0=0 0⊕1=1 1⊕0=1 1⊕1=0

规则说明:在异或运算中,当两个逻辑值不相同时,结果才为1,否则为0;不同为1 相同为0。

(四)数值在计算机中的表示

在计算机中,所有的信息都是以二进制形式来表示的。其中,二进制的一个数位是存储数据的最小单位,其值为或者0,称为位(bit)。例如二进制110000011共有8个二进制位。

字节(Byte)是信息在计算机中的基本存储单位。一个字节由8个二进制位构成。

1B=8bit

1KB=1024B=2^10B

1MB=1024KB=2^20B

1GB=1024MB=2^30B

1TB=1024GB=2^40B

字(word)是计算机处理数据的基本单位。字的二进制位数称为字长,常见的有16位、32位、64位等。字长体现了计算机的性能。

数值的编码

  1. 机器数是以二进制编码的形式表示的一个数。通常其最高位(左边第一位)位符号位,0表示正数,1表示负数,其余位为数值位。

比如1在计算机存储是00000000000000000000000000000001 左边第一位是0 表示符号位 是整数

-1在计算机的存在是 10000000000000000000000000000001 左边第一位是1表示符号位 是负数

原码、反码和补码

  1. 为了方便对于机器数的运算,采用的编码方便有原码、反码和补码等。

1的原码00000000000000000000000000000001 -1原码10000000000000000000000000000001

正数的反码与原码相同

负数的反码保持原码的符号不变,其余按位取反。

-1的反码 111111111 111111111111111111111111110

负数的补码保持原码的符号位不变,其余各位按位取反后在最低位加上1。

正数的补码与原码相同

-1补码 111111111 111111111111111111111111111。

为了得到负数的补码 就是反码+1。

你可能感兴趣的:(c语言)