对于下面的值,写出变量x的C语言表达式.代码应该对任何字长w≥8都能工作.我们给出当x=0x87654321以及w=32时表达式的结果,仅供参考. A.x的最低有效字节,其他位均为0.[0x00000021]. B.除了x的最低有效字节外,其他位都取补,最低有效字节保持不变.[0x789ABC21]. C.x的最低有效字节设置成全1,其他字节都保持不变.[0x876543FF]. 解答: A. x & 0xFF B. ~(x ^ 0xFF)或者x ^ (~0xFF) C. x | 0xFF…
在2.10中的inplace_swap函数的基础上,你决定写一段代码,实现将一个数组中的元素两端依次对调,你写出下面这个函数: void reverse_array(int a[], int cnt) { int first, last; , last = cnt - ; first <= last; first ++, last --) { inplace_swap(&a[first], &a[last]); } } 当对一个数组包含1.2.3.4时,得到预期的结果4.3.2.1.…
假设x和y的字节值分别为0x66和0x39.填写下表,指明各个C表达式的字节值. 0x66 = 0110 0110(B) 0x39 = 0011 1001(B) 表达式 值 x & y 0x20 x | y 0x7F ~x | ~y 0xDF x & !y 0x00 x && y 0x01 x || y 0x01 !x || !y 0x00 x && ~y 0x01…
从20世纪70年代末到80年代末,Digital Equipment的VAX计算机是一种非常流行的机型.它没有布尔运算AND和OR指令,只有bis(位设置)和bic(位清除)这两种指令.两种指令的输入都是一个数据字x和一个掩码字m.它们生成一个结果z,z是由根据掩码m的位来修改x的位得到的.使用bis指令,这种修改就是在m为1的每个位置上,将z对应的位设置为1.使用bic指令,这种修改就是在m为1的每个位置,将z对应的位设置为0. 只使用这两个函数实现C语言的按位|和^运算. int bis(i…