无符号整型指定比特位置1
Posted dog-pi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无符号整型指定比特位置1相关的知识,希望对你有一定的参考价值。
将无符号数的指定比特进行置1.输入数字n(31bit,无符号整形),置为数m(0<=m<=31).
输入:无符号数,指定bit位
输出:指定的bit位被置1的值
例如:输入 891 7 输出 1019
1 #include <stdio.h> 2 #include <stdlib.h> 3 int main(void) 4 { 5 unsigned int c, tmp; 6 int d; 7 while (1) 8 { 9 scanf("%d%d", &c, &d); 10 if ((d >= 0) && (d <= 31)) 11 { 12 tmp = c; 13 tmp &= ~(1 << d); //(0000 0000 0000 0001)左移d位(0000 0000 1000 0000)取反(1111 1111 0111 1111)& 14 // (0000 0000 0000 0001) 15 // (0000 0000 1000 0001)| 16 tmp |= 1 << d; // (0000 0000 1000 0000) 17 // (0000 0000 1000 0001) 18 c = tmp; 19 printf("%d ", c); 20 } 21 else 22 { 23 printf("input error "); 24 } 25 } 26 27 system("pause"); 28 return 0; 29 }
以上是关于无符号整型指定比特位置1的主要内容,如果未能解决你的问题,请参考以下文章
剑指offer知识点Java中无符号整型如何与int/long类型互相转化
剑指offer知识点Java中无符号整型如何与int/long类型互相转化