2L1整型数据 1.整型数据的类型 基本整型数据int,分配2Byte 短整型数据 short int,分配2Byte 长整型数据 long int,分配4Byte 整型数据均以二进制补码形式存储 向氨; 多什要求周并? 晶何成函? 2021/2/21
2021/2/21 6 2.1.1 整型数据 1.整型数据的类型 – 基本整型数据 int ,分配 2 Byte – 短整型数据 short int,分配 2 Byte – 长整型数据 long int,分配 4 Byte 整型数据均以二进制补码形式存储 问题: 为什么要采用补码? 如何表示?
计算机中、负数的表示 例如:109=(1101101)2 要区别:+109和-109 方法是:将符号也数码化 即:正的符号+用0表示 负的符号-用1表示 计算机中的数表示方法是 符号位+二进制数值以8bt为例) 109+1101101→01101101 109→-110110111101101 2021/2/21
2021/2/21 7 计算机中正、负数的表示 例如:109 =(1101101)2 要区别:+109 和 -109 方法是:将符号也数码化 即: 正的符号 +用 0 表示 负的符号 -用 1 表示 ∴ 计算机中的数表示方法是: 符号位+二进制数值(以 8bit 为例) +109 → +110 1101 → 0110 1101 -109 → -110 1101 → 1110 1101
向题:计算机计算复类化 8 例如计算:(-19)+(+22) 10010011+00010110 需要判断符号是否相同 如果相同,结果符号不变,并进行绝对值相加 如果不同,结果取绝对值大的数的符号,并进 行绝对值相减 解决的方法是: 使用反码或补码的表示方法(按前述 表示的编码称为原码),即能将减法律 转换为加法。 2021/2/21
2021/2/21 问题:计算机计算复杂化 8 例如计算: (-19)+(+22) 1001 0011 + 0001 0110 解决的方法是: 使用反码或补码的表示方法(按前述 表示的编码称为原码),即能将减法一律 转换为加法。 需要判断符号是否相同: • 如果相同,结果符号不变,并进行绝对值相加 • 如果不同,结果取绝对值大的数的符号,并进 行绝对值相减
原码、反码和补码 正数:原码、反码、补码相同 符号位为0,数值为对应的二进制数。 +109 [01101101原=[01101101反=[01101101补 ●负数: -原码符号位为1,数值为绝对值的二进制 数 109110101原 反码符号位为1,数值为绝对值的二进制 数各位变反。 10910010010反 补码符号位为1,数值为绝对值的二进制 数各位变反加1。-10910010011、产an
2021/2/21 原码、反码和补码 9 ⚫正数:原码、反码、补码相同 – 符号位为0,数值为对应的二进制数。 +109 [01101101]原 = [01101101]反 = [01101101]补 ⚫负数: – 原码符号位为1,数值为绝对值的二进制 数。 -109 [11101101]原 – 反码符号位为1,数值为绝对值的二进制 数各位变反。 -109 [10010010]反 – 补码符号位为1,数值为绝对值的二进制 数各位变反加1。-109 [10010011]补
2.有符号和无符号整型数据 10 有符号的整型数据 signed int 无符号的整型数据 unsigned int 区别是将最高位看作符号位还是数据位 例如:11101000 作为有符号数使用时,最高为符号位 为负数,值是:-88(再求一次补) 作为无符号数使用时,最高为数据位 为无符号的数,值是:65448 2021/2/21
2021/2/21 10 2. 有符号和无符号整型数据 – 有符号的整型数据 signed int – 无符号的整型数据 unsigned int 区别是将最高位看作符号位还是数据位 例如: 1111 1111 1010 1000 • 作为有符号数使用时,最高为符号位 为负数,值是:- 88(再求一次补) • 作为无符号数使用时,最高为数据位 为无符号的数,值是:65448