关于C语言(oxff)

来源:百度知道 编辑:UC知道 时间:2024/06/07 03:43:51
isalnum(int c);
功能:判断字符c是否为字母或数字
那么
key=bioskey(0);
if(isalnum(key & 0xff)){
是什么意思?可不可以解说一下?3Q

首先这里的变量key应该是int类型的,在32位机上int型有4个字节,需要判断的字符为一个字节。
key & 0xff的目的是把key代表的值的高位清0,即使前3个字节清0,保留最后一个字节。

0xff是十六进制,十进制为255,二进制为1111 1111
&运算符是与运算

bioskey(0)函数返回的是按键的扫描码,若低位不为0,此时表示字符的ASCLL码.若低位为0 ,高位是表示控制键,即CTRL,ALT,光标键等等,所以要判断字符c是否为字母或数字只要看低位是否为0就可以了.将key&0xff后,高位变成了0,如果结果为0,表示低位一定是0,那就不是字母或数字,反之就是字母或数字