zoukankan      html  css  js  c++  java
  • 习题19_4

    1.去掉最后一位 (x>>1)
    2.在最后加一个0 (x<<1)
    3.在最后加一个1 ((x<<1)+1)
    4.把最后一位变成1 (x|1)
    5.把最后一位变成0 ((x|1)-1)
    6.最后一位取反 $x ^{wedge} 1 $
    7.把右数第k位变成1 (x|(1<<(k-1)))
    8.把右数第k位变成0 (x&~(1<<(k-1)))
    9.右数第k位取反 (x ^{wedge} (1<<(k-1)))
    10.取末三位 (x&7)
    11.取第k位 (x&(1<<(k-1)))
    12.取右数第k位 (x>>(k-1)&1) //右移k位,再与1一下,就知道这位是1是0了
    13.把右数第k位变成1 (x|(1<<k-1))
    14.末k位取反 (x ^{wedge} (1<<k-1))
    15.把右边连续的1变成0 (x&(x+1))
    16.把右起第一个0变成1 (x|(x+1))
    17.把右边连续的0变成1 (1|(x-1))
    18.取右边连续的1 ((x ^{wedge} (x+1))>>1)
    19.去掉右起第一个1的左边 (x&(x ^{wedge} (x-1)))

    习题答案:
    1、奇偶性判断
    a & 1 =1 奇数, a & 1 =0 偶数

    2、右边数第k位变成0 x&~(1<<(k-1))

    3、从右边数末k位取反 x^(1<<k-1)

    4、判断从右边数第k位是1还是0 x>>(k-1)&1

    5、将从右边数的第一个0变成1 x|(x+1)

  • 相关阅读:
    0919 作业
    0918 登录注册
    20190918 文件处理
    20190917 字符编码
    0916 作业
    0916 数据类型与深浅拷贝
    0913 作业
    0912 for循环及内置方法
    0911 作业
    Ubuntu同时忘记用户密码和root密码
  • 原文地址:https://www.cnblogs.com/littlehb/p/15171895.html
Copyright © 2011-2022 走看看