清华大学出版社 TSINGHUA UNIVERSITY PRESS 结果值的低4位正好是原数低4位的翻转。要使哪 几位翻转就将与其进行∧运算的该几位置为1即可。 这是因为原数中值为1的位与1进行∧运算得0,原 数中的位值0与1进行∧运算的结果得 (2)与0相∧,保留原值如 012∧00=012 00001010 (∧)0000 00001010 因为原数中的1与0进行∧运算得1,0∧0得0,故 保留原数
• 结果值的低4位正好是原数低4位的翻转。要使哪 几位翻转就将与其进行∧运算的该几位置为1即可。 这是因为原数中值为1的位与1进行∧运算得0,原 数中的位值0与1进行∧运算的结果得1。 • (2) 与0相∧,保留原值如 • 012∧00=012 • 00001010 • (∧)00000000 • 00001010 • 因为原数中的1与0进行∧运算得1,0∧0得0,故 保留原数
清华大学出版社 TSINGHUA UNIVERSITY PRESS (3)交换两个值,不用临时变量 假如a=3,b=4。想将a和b的值互换,可以用以下 赋值语句实现: a=a∧b ·b=b∧a; a=a∧b; 可以用下面的竖式来说明
• (3) 交换两个值,不用临时变量 • 假如a=3,b=4。想将a和b的值互换,可以用以下 赋值语句实现: • a=a∧b; • b=b∧a; • a=a∧b; • 可以用下面的竖式来说明:
清华大学出版社 TSINGHUA UNIVERSITY PRESS a=011 (∧)b=100 a=111a∧b的结果,a已变成7 (∧)b=100 b=011b∧a的结果,b已变成3) (∧)a=11l a=100(a∧b的结果,a变成4) 即等效于以下两步: ①b=b∧(a∧b)=b∧a∧b=a∧bb=a∧0=a 它相当于上面的前两个赋值语句:“a=a∧b;” 和“b=b∧a;”。b∧b的结果为0,因为同一个数 与
a=011 (∧) b=100 a=111(a∧b的结果,a已变成7) (∧)b= 100 b=011(b∧a的结果,b已变成3) (∧)a=111 a=100(a∧b的结果,a变成4) • 即等效于以下两步: • ① b=b∧(a∧b)=b∧a∧b=a∧b∧b=a∧0=a • 它相当于上面的前两个赋值语句:“a=a∧b;” 和“b=b∧a;”。b∧b的结果为0,因为同一个数 与
清华大学出版社 TSINGHUA UNIVERSITY PRESS 本身相∧,结果必为0。现在b已得到a的值3。在 上式中除了第一个b以外,其余的a、b都是指原来 的a、b ②再执行 a=a∧b=(a∧b)∧(b∧a∧b)=a∧b∧b∧a∧b=a∧a ∧b∧b∧b=b。 a得到b原来的值。 12.14“取反”运算符(~) ~是一个单目(元运算符,用来对一个二进制数按 位取反,即将0变1,1变0。例如~025是对八进制 数25(即二进制数00010101按位求反
本身相∧,结果必为0。现在b已得到a的值3。在 上式中除了第一个b以外,其余的a、b都是指原来 的a、b。 • ② 再执行 a=a∧b=(a∧b)∧(b∧a∧b)=a∧b∧b∧a∧b=a∧a ∧b∧b∧b=b。 • a得到b原来的值。 12.1.4 “取反”运算符(~) • ~是一个单目(元)运算符,用来对一个二进制数按 位取反,即将0变1,1变0。例如~025是对八进制 数25(即二进制数00010101)按位求反
清华大学出版社 TSINGHUA UNIVERSITY PRESS 000000000010101 1111111101010 即八进制数177752。因此,~025的值为八进制数 177752。不要以为~025的值是025。 下面举一例说明~运算符的应用。 若一个整数a为16位,想使最低一位为0,可以用 a-a&017T776 ·17777即二进制数11110果a的值为 八进制数75,a&0177775的运算可以表示如下:
• 000000000010101 • (~) ↓ • 111111111101010 • 即八进制数177752。因此,~025的值为八进制数 177752。不要以为~025的值是-025。 • 下面举一例说明~运算符的应用。 • 若一个整数a为16位,想使最低一位为0,可以用 a=a & 0177776 • 177776即二进制数1111111111111110,如果a的值为 八进制数75,a & 0177776的运算可以表示如下: