位运算知识和常用函数~

用简洁的方式给大家一点基础知识。

位运算常用知识:

-127

原 1111 1111
反 1000 0000

补 1000 0001

优先级  移位 >& > ^ > | 

&与

1&1  = 1

10 0

00 0

^异或

11 0

10 1

00 0

|或

11 1

10 1

00 0

位运算常用函数【使用范围为:整型,32bit,-2147483648~2147483647。

打印二进制数组:

使用方法:传入数组binary,里面是0和1,然后printf出来

void printBinary(int* b)
{
    int count = 1;
    for (int i = 31;i >= 0;i--)
    {
        cout << b[i];
        if (count++ % 4 == 0)cout <<" ";
    }
}

二进制数组转换为十进制数:

使用范围为:整型,32bit,-2147483648~2147483647。

int getInt(int* b)
{
    int num=0;
    for (int i = 30;i >= 0;i--)
    {
        num *= 2;
        if (b[i])num += 1;
    }
    if (b[31] == 1)
    {
        num = -2147483648+num;
    }
    return num;
}

转换为二进制数组:

void getbBinary(int* b)
{
    int n;
    printf("输入你要转换为二进制数组的数:");
    scanf("%d", &n);
    if (n < 0)
    {
        n = n + 1;;
        for (int i = 0;i < 32; i++)
        {
            b[i] = 1;
        }
        for (int i = 0;i < 32 && n != 0;i++)
        {

            if (n % 2 != 0)b[i] = 0;
            n /= 2;
        }
    }
}

pta上最近回顾二进制运算,正好做一期位运算,这些干货送给大家了ヽ( ̄ω ̄( ̄ω ̄〃)ゝ。

这期到这了谢谢大家Thanks♪(・ω・)ノ。

 

posted @ 2021-10-12 23:11  未定义式  阅读(81)  评论(0编辑  收藏  举报