位运算

位运算符

进制:

数码:某一种进制中所能出现的数字

    十进制:0至9

    二进制:0、1

    八进制:0至7

    十六进制:0至9与A至F

基数:某一种进制中所出现的数码的个数

    十进制:10(逢十进一)

    二进制:2(逢二进一)

    八进制:8(逢八进一)

    十六进制:16(逢十六进一)

权:用于衡量,某一种进制中某一位上的数码作用大小的值,权是一个幂(xy)

x表示:基数

y表示:位数

(1234)10

数码4所在的在位的权:100 1

数码3所在的在位的权:101 10

数码2所在的在位的权:102 100

数码1所在的在位的权:103 1000

(1234)10为什么是1234

4*100+3*101+2*102+1*103=1234

 

(10101)2

从右向左每一位数码所在的位的权:

数码1所在的在位的权:20 1

数码0所在的在位的权:21 2

数码1所在的在位的权:22 4

数码0所在的在位的权:23 8

数码1所在的在位的权:24 16

(10101)2=1*20+0*21+1*22+0*23+1*24=21

 

8421BCD码

可以将255之前的二进制很方便转换成十进制

128

64

32

16

8

4

2

1

二进制数

 

1

1

0

0

0

0

1

权展开式:

    某种进制中数位上的数码与该数码所在位上的权的乘积的和,任何一种进制都可按权展开式,转换为十进制。

 

(75)8=(?)10

7*81 + 5*80=61

 

(FA)16=(?)10

F*161        A*160        =

15*161        10*160        =(250)10

 

十进制转换成二进制:

    分两整数与小数部分,分别进行转换,整数部分采用的是基数连除取余法。小数部分采用的是基数连乘取整法

128

64

32

16

8

4

2

1

二进制数

     

1

0

1

十进制数

二进制转换为八进制(或十六进制):

    1、以小数点为起点,整数部分向左,小数部分向右,每3位(或4位)一组,不足位数提整数部分在左边补0,小数部分在右边补0。

    2、再将每一组3位(或4位)二进制转换成八进制(或十六进制)数。

(010 110 101 . 010)=(?)8

(010 110 101 . 010)=( 265.2)8

(10110101.01)=(?)16

(1011 0101.0100)=(?)16

11        5    .4

B        5    .4

(1011 0101.0100)=( B5.4)16

 

原码:原码就是符号(正负号)加上二进制数

    正数的原码在最高位用0表示

    负数的原码在最高位用1表示

    注意:计算机中高位只能是第32位

十进制数10的原码:

0 000 0000 0000 0000 0000 0000 0000 1010

十进制数-10的原码:

1 000 0000 0000 0000 0000 0000 0000 1010

反码:

    正数的反码与原码相同

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

十进制数10的反码:

    0 000 0000 0000 0000 0000 0000 0000 1010

十进制数-10的反码:

    原码:1     000 0000 0000 0000 0000 0000 0000 1010

    反码:1    111 1111 1111 1111 1111 1111 1111 0101

补码:

    正数的补码与原码相同

    负数的补码在反码的基础上+1

十进制数10的补码:

0 000 0000 0000 0000 0000 0000 0000 1010

十进制数-10的补码:

反码:1    111 1111 1111 1111 1111 1111 1111 0101

补码:1    111 1111 1111 1111 1111 1111 1111 0110

 

正数的原码反码补码相同

负数的

    原码:最高位为1

    反码:在原码基础上,符号位不变,其余位取反

    补码:在反码的基础上加1

&:按位与

运算规则:

    参与运算的两个操作数的二进制形式,对应位上的数,如果都为1,那么结果位上的就是1,否则为0

 

|:按位或

运算规则:

    参与运算的两个操作数的二进制形式,对应位上的数,如果都为0,那么结果位上的就是0,否则为1(换句话说,只要有一个为1则为1)

 

^:按位异或

运算规则:

    参与运算的两个操作数的二进制形式,对应位上的数,如果不同,那么结果位上的就是1,否则为0

 

 

~:按位非

运算规则:

    对操作数的二进制形式每一位取反(包含符号位)

示例:

<<:算术左移

运算规则:

    对参与运算的操作数的二进制形式,符号位不变,其余位整体左移,左边溢出的忽略,右边空位补0

 

>>:算术右移

运算规则:

    对参与运算的操作数的二进制形式,符号位不变,其余位整体右移,右边溢出的忽略,右边空位补符号位

示例:

posted @ 2016-04-05 14:37  尼农小道  阅读(317)  评论(0编辑  收藏  举报