位运算位运算主讲人:孙鑫主讲人:孙鑫计算机中数据的表示方法计算机中数据的表示方法计算机是一种电子设备,由复杂的电子元器件组合而成,一个电子元器件有带电和不带电两种状态,通常我们将带电状态表示为数值 1,不带电状态表示为数值 0, 多个这样的元器件的组合可以表示更多状态,也就是可以表示更多的数据,如 000 表示 0, 001 表示 1, 010 表示 2, 011 表示 3,依此类推, 111 表示 7,一个元器件可表示一位( bit)数据,这种表示数据的方式就叫二进制。在实际的电子设备中,我们将 8个这样的元器件形成一个单元, 这样的单元叫一个字节( byte ), 一个字节能表示多少个数呢?表示数值的范围是 0-255 。一个字节由 8个二进位组成,其中最右边的一位称为“最低有效位”或“最低位”,最左边的一位称为“最高有效位”或“最高位”。每一个二进位的值是 0或1。计算机中数据的表示方法计算机中数据的表示方法二进制计数的缺点:书写太长,容易出错, 一般计算机的数据位数都是 4的整数倍,所以, 在计算机里通常采用 16进制计数法。用数字可以表示各种信息,计算机里只有数值,当你在内存中看到一个数值时,这个数值可能代表各种意义,生活中的数值也可以代表其他意义,如 1234 可以代表密码,存款额,电报信息,根据上下线索,我们就能够知道这数值代表的意义。原码、反码和补码原码、反码和补码??原码原码将最高位作为符号位(以将最高位作为符号位(以 0 0代表正, 代表正, 1 1代表负),其余代表负),其余各位代表数值本身的绝对值(以二进制表示)。各位代表数值本身的绝对值(以二进制表示)。为了简单起见,我们用为了简单起见,我们用 1 1个字节来表示一个整数。个字节来表示一个整数。+7 +7 的原码为: 的原码为: 00000111 00000111 -7 -7 的原码为: 的原码为: 10000111 10000111 问题: 问题: +0 +0 的原码为: 的原码为: 00000000 00000000 -0 -0 的原码为: 的原码为: 10000000 10000000 原码、反码和补码原码、反码和补码??反码反码一个数如果为正,则它的反码与原码相同;一个数如一个数如果为正,则它的反码与原码相同;一个数如果为负,则符号位为果为负,则符号位为 1 1,其余各位是对原码取反。,其余各位是对原码取反。为了简单起见,我们用为了简单起见,我们用 1 1个字节来表示一个整数。个字节来表示一个整数。+7 +7 的反码为: 的反码为: 00000111 00000111 -7 -7 的反码为: 的反码为: 11111000 11111000 问题: 问题: +0 +0 的反码为: 的反码为: 00000000 00000000 -0 -0 的反码为: 的反码为: 11111111 11111111 原码、反码和补码原码、反码和补码??补码补码利用溢出,我们可以将减法变成加法。利用溢出,我们可以将减法变成加法。对于十进制数,如果从对于十进制数,如果从 9 9得到结果得到结果 5 5,可以用减法: ,可以用减法: 9-4=5 9-4=5 因为因为 4+6=10 4+6=10 ,我们将,我们将 6 6作为作为 4 4的补数,将上式的减法改写为加法: 的补数,将上式的减法改写为加法: 9+6=15 9+6=15 去掉高位去掉高位 1 1(也就是减去(也就是减去 10 10),得到结果),得到结果 5 5。。对于对于 16 16进制数,如果从进制数,如果从 C C得到结果得到结果 5 5,可以用减法: ,可以用减法: C-7=5 C-7=5 因为因为 7+9=16 7+9=16 ,我们将,我们将 9 9作为作为 7 7的补数,将上式的减法改写为加法: 的补数,将上式的减法改写为加法: C+9=15 C+9=15 去掉高位去掉高位 1 1(也就是减去(也就是减去 16 16),得到结果),得到结果 5 5。。原码、反码和补码原码、反码和补码??补码补码在在计算机中,如果我们用计算机中,如果我们用 1 1个字节表示一个数, 个字节表示一个数, 一个字节有一个字节有 8 8位,超过位,超过 8 8位就进位就进 1 1,在内存中情况为: ,在内存中情况为: 1 00000000 1 00000000 进位进位 1 1被丢弃。被丢弃。原码、反码和补码原码、反码和补码+1 11111001 ??补码补码一个数如果为正,则它的原码、反码、补码相同;一一个数如果为正,则它的原
Java-位运算-课件【PPT讲稿】 来自淘豆网m.daumloan.com转载请标明出处.