zoukankan      html  css  js  c++  java
  • 《c程序设计语言》-2.6~2.8

    #include <stdio.h>
    
    unsigned setbits(unsigned x, int p, int n, unsigned y)
    {
        return (x & ((~0 << (p + 1)) | (~(~0 << (p + 1 - n))))) | ((y & ~(~0 << n)) << (p + 1 - n));
    }
    int main(void)
    {
        unsigned x = 8;
        unsigned y = 4;
        unsigned k;
        int p = 4;
        int n = 3;
        
        k = setbits(x, p, n, y);
        printf("setbits(%u, %d, %d, %u) = %u
    ", x, p, n, y, k);
    
        return 0;
    }
    

    以上是2.6.


    #include <stdio.h>
    
    unsigned invert(unsigned x,int p,int n)
    {
        return x ^ ((~(~0U << n)) << (p+1-n));
    }
    
    int main(void)
    {
        unsigned x = 8;
        int p = 4, n = 3;
    
        printf("%u, %d, %d: %u
    ", x, n, p, invert(x, p, n));
    
        return 0;
    }
    


    以上是2.7.



    #include <stdio.h>
    
    unsigned rightrot(unsigned x, unsigned n)
    {
        while (n > 0)
        {
             if ((x & 1) == 1)
                 x = (x >> 1) | ~(~0U >> 1);
             else
                 x = (x >> 1);
              n--;
        }
    
        return x;
       }
    
    int main(void)
    {
        unsigned x = 8;
        int n = 3;
    
        printf("%u, %d: %u
    ", x, n, rightrot(x,n));
    
        return 0;
    }
    


    以上是2.8.

  • 相关阅读:
    7-11
    7-9
    7-8
    7-7
    7-6
    7-5
    7-4
    7-3
    第08次:升级《陋习手记》完善主从UI
    第07次:升级《陋习手记》显示多条数据
  • 原文地址:https://www.cnblogs.com/batteryhp/p/5020473.html
Copyright © 2011-2022 走看看