c-取一个整数a从右端开始的4~7位

2021-11-27 159 0

1.先使a右移4位。
2.设置一个低4位全为1,其余全为0的数。可用(0<<4)
3.将上面二者进行&运算。

#include <stdio.h>
int main(){
    unsigned a,b,c,d;
    printf("请输入整数:\n");
    scanf("%o",&a);
    b=a>>4;
/*~按位取反,
<<左移运算
比如0的二进制为00……0000000
那么~0就为11……1111111
而~0<<4就是将~0的二进制码向左移动4位,右边补0,
即得11……1110000
~(~0<<4)就是将上一步得到的二进制码(11……1110000)取反,
得00……0001111*/
    c=~(~0<<4);    d=b&c;    printf("%o\n%o\n",a,d);    return 0;
}

相关文章

【转】C++-ADO编程详解
c-各变量在内存中的位置
c-变态跳台阶
C++-编写类String的构造函数、析构函数和赋值函数
c-计蒜客 排序好的数组删除重复数字
c-归并排序

发布评论