精华内容
下载资源
问答
  • 移位运算

    2020-07-16 16:59:05
    移位运算 1.逻辑移位 2.算数移位 3.循环移位

    移位运算

    1.逻辑移位
    在这里插入图片描述
    2.算数移位
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    3.循环移位
    在这里插入图片描述

    展开全文
  • 移位运算,所有移位以5和-5为例移位运算左移(<<)正数负数带符号右移(>>)(右移向前面补对应的符号位所对应的值(正数补0,负数补1))正数负数不带符号右移(>>>)(>>>为java独有语法)正数...

    移位运算

    可以移位运算的类型有:iuint,int,lang等类型.我们本次使用int类型
    一个int类型占4个字节,共32位,带符号位,所以最高位位符号位(使用0,1表示符号位)

    我们首先需要了解正数和负数的二进制码分别如何表示(以5和-5为例)

    正数:0000 0000 0000 0101
    负数:1000 0000 0000 0101

    移位操作在二进制中都是补码移位在转会为原码得到相应的值
    正数的反码,补码与原码相同
    负数的反码为除符号位全部取反
    负数的补码为反码加1

    所以 在对正数进行移位操作时就是对原码进行操作
    负数是对补码操作,操作完成后再转换为原码得到对应的值
    所以-5的补码为:1111 1111 1111 1011

    左移(<<)

    正数

     5左移三位:0000 0000 0010 1000 =40
    

    负数

    -5左移三位:补码:1111 1111 1101 0111
    原码:1000 0000 0010 1000
    得:-40

    带符号右移(>>)(右移向前面补对应的符号位所对应的值(正数补0,负数补1))

    正数

    5右移三位:0000 0000 0000 0000 =0

    负数

    -5右移三位:补码:1111 1111 1111 1111
    反码:1111 1111 1111 1110
    原码:1000 0000 0000 0001
    得:-1

    不带符号右移(>>>)(>>>为java独有语法)

    正数

    5右移三位:0000 0000 0000 0000 =0

    负数

    -5右移三位:补码:0001 1111 1111 1111 1111 1111 1111 1111
    反码:0001 f f f f f f 1110
    得:536 870 911

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,337
精华内容 2,534
关键字:

移位运算