34 lines
777 B
C
34 lines
777 B
C
|
// 请编程,实现以下操作: 定义unsigned char 型变量a,赋值0x7f,
|
|||
|
// 将其第1、5、7位置1,2、3、6位清0,其它位保持不变。
|
|||
|
#include <stdio.h>
|
|||
|
|
|||
|
void printBinary(char num)
|
|||
|
{
|
|||
|
int size = sizeof(num);
|
|||
|
for (int i = size * 8 - 1; i >= 0; i--)
|
|||
|
{
|
|||
|
int bit = (num >> i) & 1;
|
|||
|
printf("%d", bit);
|
|||
|
}
|
|||
|
printf("\n");
|
|||
|
}
|
|||
|
|
|||
|
int main()
|
|||
|
{
|
|||
|
unsigned char a = 0x7f; // 十六进制
|
|||
|
printf("原样输出: ");
|
|||
|
printBinary(a);
|
|||
|
|
|||
|
a |= 0b1010001; // 0b 表示二进制数的标识符
|
|||
|
printf("1、5、7位置1输出: ");
|
|||
|
printBinary(a);
|
|||
|
|
|||
|
a &= ~0b100110;
|
|||
|
printf("2、3、6位清0输出: ");
|
|||
|
printBinary(a);
|
|||
|
|
|||
|
printf("结果的十六进制输出: ");
|
|||
|
printf("0x%hhx\n", a); // 0x59
|
|||
|
|
|||
|
return 0;
|
|||
|
}
|