无符号整型指定比特位置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的主要内容,如果未能解决你的问题,请参考以下文章

C语言里怎样理解长整型 短整型 和无符号型变量和常量?

请教:C语言中如何将一字符串转换成无符号整型

剑指offer知识点Java中无符号整型如何与int/long类型互相转化

剑指offer知识点Java中无符号整型如何与int/long类型互相转化

剑指offer知识点Java中无符号整型如何与int/long类型互相转化

无符号整型和有符号整形转换