V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
jedrek
V2EX  ›  问与答

低位取反

  •  
  •   jedrek · Mar 8, 2021 · 1046 views
    This topic created in 1876 days ago, the information mentioned may be changed or developed.

    比如 0000 1010,通常的取反后得到 1111 0101,怎么样忽略高位的 0,只针对低位取反得到 0000 0101

    4 replies    2021-03-10 20:32:58 +08:00
    goodboy95
        1
    goodboy95  
       Mar 8, 2021
    异或,想给谁取反就给谁取反,像这种给低 4 位取反就直接跟 15 异或。
    jmc891205
        2
    jmc891205  
       Mar 8, 2021
    先用二分法找到最高位的 1 在哪里
    然后查表找到对应的 mask 异或就好了
    GuuJiang
        3
    GuuJiang  
       Mar 8, 2021 via iPhone   ❤️ 2
    如果你是要固定的低 n 位取反,那参考#1 用异或,如果你是要从首个 1 以后的部分取反,那么……
    亲,这边建议您考虑下减 1 呢
    ch2
        4
    ch2  
       Mar 10, 2021
    0000 1010 xor 0000 1111
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4671 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 10:07 · PVG 18:07 · LAX 03:07 · JFK 06:07
    ♥ Do have faith in what you're doing.