C语言中的0xf0,0x04..类似的数是什么意思啊

0x40,0x04...0xf0之类的是什么?是数吗,表示什么意思?

一个16进制的数

java 里面0x开头的数值为16进制的

0xf0 = 15*16 = 240

int i = 0xf0;
就相当于
int i = 240;

ch&0xf0)里ch是你输入的字符,&按位与运算符,0xf0是8位掩码,这里将ch低4位掩出,>>是算术右移运算符,将已掩出低4位的值的低4位移出,只剩下高4位.
(ch&0x0f)原理同上,不过是将高4位掩出.
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-04-14
~在c语言中是按位取反的意思,
~(0xf)则要看一起运算的变量或者赋值的变量类型。
如果是unsigned
char(8位),unsigned
char
i
=
~(0xf);
那么
~(0xf)=11110000(2进制)=0xf0=240(10进制无符号数)
如果是char(8位),char
i
=
~(0xf);
那么
~(0xf)=11110000(2进制)=0xf0=-16(10进制有符号数)
如果是unsigned
short(16位),unsigned
short
i
=
~(0xf);
那么
~(0xf)=1111111111110000(2进制)=0xfff0=65520(10进制无符号数)
如果是short(16位),short
i
=
~(0xf);
那么
~(0xf)=1111111111110000(2进制)=0xfff0=-16(10进制有符号数)
32位,64位数据以此类推...
相似回答