总结归纳计算机编程中的各种数据类型,其表示形式和计算方法

一、整型 int/unsigned int

1.表示形式:

  • 有符号整型数:int
  • 无符号整型数:unsigned int

2.计算方法:

  • 类型转换
    同类型之间(int 与 int、unsigned int 与unsigned int)的转换,转换后类型不变,int 和 unsigned int 之间,转换后为unsigned int

  • 数值溢出
    对于无符号数:
    若数据(N位)溢出,即超出有效范围(2N-1),则结果为对2N-1取余;
    对于有符号数:
    溢出的数据正常显示,并不进行求余运算。

  • 移位运算
    位移位对于二进制数进行操作。移位时,移出的数据全部舍弃,空位补入的数据取决与左移还是右移。且进行移位运算时,符号位不变,只有数值位参与移位。
    左移:
    最高位移出舍弃,低位补0;
    右移:
    最低位移出舍弃,若为正数,高位补0;若为负数,高位补1。

二、浮点型 float/double

1.表示形式:

  • 单精度型float
  • 双精度型double

2.表示方法:
(1)浮点数的表达方式:
N=±S×R±e
S为尾数,代表N的有效数字;
R为基值,通常取2、8、16;
e为阶码,代表N的小数点的实际位置,相当于数学中的指数;
浮点数就是利用阶码e的变化达到浮动小数点的效果,从而灵活地表达更大范围的实数

(2)浮点数的格式化:
当浮点数的基数R为2时,即采用二进制数时,格式化尾数的定义为1/2≤|S|<1,若S=SfS₁S₂S₃S₄S₅…Sn(Sf为符号位),则满足S₁=1的数为格式化数。
例:0.001001×25进行格式化后,表示为0.100100×23

(3)浮点数的表示范围:
总结归纳计算机编程中的各种数据类型,其表示形式和计算方法_第1张图片
0、处于最小负数到最大负数(负数区)之间以及处于最小整数到最大整数(正数区)之间的数为浮点数所能正确表达的数,处于下溢区的数,由于其绝对值小于机器可以表示的数值,在计算机中通常作0处理,称为机器0;处于上溢区的数,由于其绝对值大于机器所能表示的数值,计算机将进行溢出处理。

(4)IEEE754浮点数标准

符号位S 指数E 尾数M

在次标准中,32位单精度浮点数表示格式如下:
总结归纳计算机编程中的各种数据类型,其表示形式和计算方法_第2张图片
各部分规定如下:
S:符号位,0为正,1为负
E:阶码部分,包括1位阶符和7位数值。采用移127码,移码值为127
M:尾数,共23位,用格式化表示
例:-60.25 其符号位S=1,数值绝对值用二进制表示为111100.01=1.1110001×25,阶码E=5+127=132,可得1000 0100;M=1110001,补全23位后,可得111 0001 0000 0000 0000 0000;最终得到-60.25的浮点数为1 1000 0100 111 0001 0000 0000 0000 0000

64位双精度浮点数double的表示方法与32位单精度浮点数float的表示方法类似,阶码变为11位,且移码值为1023。

3.计算:

  • 类型转换
    当操作数有浮点型数据时,均会转换成double类型进行运算

  • 加减运算
    x=Mx × 2Ex ,y=My× 2Ey
    (1)对阶:ΔE=Ex - Ey
    如果ΔE=0,说明两数阶码相等,无需对阶;
    如果ΔE>0,表示Ex>Ey,Ey要向Ex靠拢,其尾数My要作相应右移;
    如果ΔE<0,表示Ey>Ex,Ex要向Ey靠拢,其尾数Mx要做相应右移;
    (2)尾数相加
    完成对阶后,两数的小数点已经对齐,可以进行尾数的加减运算;
    (3)结果格式化
    如果尾数相加结果的两个符号位数据不相等,表明运算结果的尾数绝对值大于1,应向右规格化,因此尾数右移1位,阶码加1
    如果尾数相加结果的符号位与数据最高位相等,表示数据没有规格化,尾数应向左规格化,即尾数左移n位,阶码相应减n
    (4)舍入处理
    为了减少对阶和向右规格化过程中造成的误差,要进行舍入处理,常用的两种舍入方法为:
    ①0舍1入
    若尾数右移时被丢掉的数据的最高位为0,则舍去;若为1,就在尾数的最低位加1;
    ②横置1
    尾数右移时,只要发生低位数据的丢失,尾数的最低位就设为1;
    (5)溢出处理
    浮点数在规格化的过程中,阶码会做相应的调整,可能会产生阶码溢出的现象;
    若阶码减n后溢出,发生阶码的下溢,表示运算结果的精度超出了该浮点数可以表示的范围,运算结果趋近0,机器一般认为运算结果为0;
    若阶码加1后溢出,发生阶码的上溢,表示运算结果超出了浮点数可表示的范围,一般可认为是+∞或-∞,发生溢出,机器的溢出标志会被置1;

  • 乘除运算
    运算步骤同加减运算:
    (1)对阶
    (2)尾数乘除
    (3)结果格式化
    (4)舍入处理
    (5)溢出处理

三、字符型 char

1.表示形式: char
2.计算方法:
char与unsigned char在参与运算时,均转换成整型int,再进行运算。

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