zoukankan      html  css  js  c++  java
  • c语言 7-5

    1、

    #include <stdio.h>
    
    unsigned set_n(unsigned x, int pos, int n)
    {
        int i;
        for(i = pos; i <= pos + n - 1; i++)
        {
            x = x | 1U << i;
        }
        return x;
    }
    
    unsigned reset_n(unsigned x, int pos, int n)
    {
        int i;
        for(i = pos; i <= pos + n - 1; i++)
        {
            x = x & ~(1U << i);
        }
        return x;
    }
    
    unsigned inverse_n(unsigned x, int pos, int n)
    {
        int i;
        for(i = pos; i <= pos + n - 1; i++)
        {
            x = x ^ 1U << i;
        }
        return x;
    }
    
    int main(void)
    {
        unsigned x;
        int pos, n;
        puts("please intput the test number ,move bits, and range span.");
        printf("x = "); scanf("%u", &x);
        printf("pos = "); scanf("%d", &pos);
        printf("n = "); scanf("%d", &n);
        
        printf("set      1      = %u
    ", set_n(x, pos, n));
        printf("set      0      = %u
    ", reset_n(x, pos, n));
        printf("inverse         = %u
    ", inverse_n(x, pos, n));
        
        return 0;
    }

    2、

    #include <stdio.h>
    
    unsigned set_n(unsigned x, int pos, int n)
    {
        int i;
        for(i = pos; i <= pos + n - 1; i++)
        {
            x = x | 1U << i;
        }
        return x;
    }
    
    unsigned reset_n(unsigned x, int pos, int n)
    {
        int i;
        for(i = pos; i <= pos + n - 1; i++)
        {
            x = x & ~(1U << i);
        }
        return x;
    }
    
    unsigned inverse_n(unsigned x, int pos, int n)
    {
        int i;
        for(i = pos; i <= pos + n - 1; i++)
        {
            if(x >> i & 1U)
                x = x & ~(1U << i);
            else
                x = x | 1U << i;
        }
        return x;
    }
    
    int main(void)
    {
        unsigned x; int pos, n;
        puts("please input the test number pos span.");
        printf("x = "); scanf("%u", &x);
        printf("pos = "); scanf("%d", &pos);
        printf("n = "); scanf("%d", &n);
        
        printf("set       0        = %u
    ", set_n(x, pos, n));
        printf("set       1        = %u
    ", reset_n(x, pos, n));
        printf("inverse            = %u
    ", inverse_n(x, pos, n));
        
        return 0;
    }

    3、

    #include <stdio.h>
    
    unsigned set_n(unsigned x, int pos, int n)
    {
        int i;
        for(i = pos; i <= pos + n - 1; i++)
        {
            x = x | 1U << i;
        }
        return x;
    }
    
    unsigned reset_n(unsigned x, int pos, int n)
    {
        int i;
        for(i = pos; i <= pos + n - 1; i++)
        {
            if(x & 1U << i)
                x = x ^ 1U << i;
            else
                x = x;
        }
        return x;
    }
    
    unsigned inverse_n(unsigned x, int pos, int n)
    {
        int i;
        for(i = pos; i <= pos + n - 1; i++)
        {
            x = x ^ 1U << i;
        }
        return x;
    }
    
    int main(void)
    {
        unsigned x; int pos, n;
        puts("please input test number, pos and span.");
        printf("x = "); scanf("%u", &x);
        printf("pos = "); scanf("%d", &pos);
        printf("n = "); scanf("%d", &n);
        
        printf("set      1       = %u
    ", set_n(x, pos, n));
        printf("set      0       = %u
    ", reset_n(x, pos, n));
        printf("inverse          = %u
    ", inverse_n(x, pos, n));
        
        return 0;
    }

  • 相关阅读:
    072孤荷凌寒从零开始学区块链第72天DAPP027
    014自学方法论_养成随手记录自学过程遇到问题的好习惯
    015把注意力放在养大我们金鹅身上
    071孤荷凌寒从零开始学区块链第71天DAPP026
    070孤荷凌寒从零开始学区块链第70天DAPP024
    068孤荷凌寒从零开始学区块链第68天DAPP022
    014什么才是一个人最宝贵的资产
    013自学方法论_怎样才是最高效率加强记忆的自学
    012自学方法谈_不要依赖视频,培养自己的阅读理解能力
    013学会建立一个个自动化的管道
  • 原文地址:https://www.cnblogs.com/liujiaxin2018/p/14793321.html
Copyright © 2011-2022 走看看