全部展开
您的搜索排名较高,但没有人回答正确的答案。我会回答,但随后我会看到它!
(对于操作员来说,这个问题是优先考虑的。)《语言手册C》的附录包含上述内容。如果1a = 014,则对于第一个数字0a您将看不到任何内容。这表示如果(a = 0xA | a12),则该数字为八进制。
由于八进制数14等于十进制数12,因此a等于或小于12。
结果为0。步骤2:0xA | 0:十六进制A(按位或0)。结果肯定是十六进制A。任意数量的位数或0等于任意数量。
这是第三个正确的步骤。if(01110 == a):同样,需要考虑操作员的优先级。==如果优先级比率大于优先级,则10 == a?
第二步表明10 == a是正确的,因为a的值为0xA并且十六进制A等于十进制10。
真的是第四步:0111是真的吗?
由于八进制011等于二进制数1001,十进制数1等于二进制数0001,因此10010001是按位的,并且在0001之后结果为true,因此printf(%d!
,A)步骤5:第二步更改为10,结果为10!
2a = 0x14等于0x是十六进制,十六进制14是十进制20,二进制10100是答案:1,还是优先级问题,20大于12?
是的,是12。十六进制A是二进制10103、1010 | 0001结果是1011等于十进制11,这一次,如果a = 114,(01110 == a)5,优先级10 == 11Is?
False,06、0110,八进制11,二进制10010000结果0000 false转换为7,第六个为false,因此反向正确!
11结束!
考虑以下问题:如果1 ==优先级大于2并且优先级大于||大于3,则按顺序执行c语言。a = 0xA |首次操作0xA。这是0xA,后跟|,因此首先运行||运行0xA | a,但在a之后有一个,并且因为它的优先级高于|,所以它首先运行。由于a12,12后面没有任何内容,因此请先执行a12。
4,测试现场:如何运行1、2?运营商优先级a = 1 + 2 + 3 * 4等于多少?
根据数学,乍看之下,首先执行3 * 4,但这是按顺序执行的C语言。+ 2 = 33 + 3 * 4 --- 3 + 3,但是由于3 *,这是第一个*,而3 + 12,因此结果是15。