C语言中a&0x0表示什么?

                                   C语言中a&0x0表示什么?
一:说明
1.在C语言中,&可以用作取地址和按位与操作两种运算。不过取地址是针对变量的,当前&后是一个常量,在C语言中不允许取地址操作,所以这个是语句的一部分,前面还要有一个操作变量。比如a&0x01。
2.&是双目操作符,需要两个操作数,代表含义为按位与操作。
3.分析操作数0x01的二进制值为0000 0001综合按位与的运算规则,可以知道除最低位外,结果值为0,最低位结果与前一个操作数的最低位相同。 于是a&0x01就是取a的最低位值的运算。
eg:
(1)当a=0x00时
a = a&0x01 ---> 0000 0000 = 0000 0000 & 0000 0001
(2)当a=0x01时
a = a&0x01 ---> 0000 0001 = 0000 0001 & 0000 0001
(3)当a=0x11时
a = a&0x01 ---> 0000 0001 = 0001 0001 & 0000 0001
二:应用实例
1.判断一个数是奇数还是偶数
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
	int i;
	scanf ("%d",&i);
	if (i&0x01)
	printf("奇数\n");
	else
	printf("偶数\n");
	system ("pause");
	return 0;
}
2.取一个数的最低位的相反数
Warm=(~Warm)&0x01;
(1)当Warm=0x00时
Warm=(~Warm)&0x01; ---> 0000 0001 = 1111 1111 & 0000 0001
(2)当Warm=0x01时
Warm=(~Warm)&0x01; ---> 0000 0000 = 1111 1110 & 0000 0001
(3)当Warm=0x11时
Warm=(~Warm)&0x01; ---> 0000 0000 = 1110 1110 & 0000 0001

猜你喜欢

转载自blog.csdn.net/weibo1230123/article/details/80803908