清华大学出版社 TSINGHUA UNIVERSITY PRESS ·结果值的低4位正好是原数低4位的翻转。要使哪 几位翻转就将与其进行个运算的该几位置为1即可。 这是因为原数中值为1的位与1进行∧运算得0,原 数中的位值0与1进行∧运算的结果得1。 ·(2)与0相入,保留原值如 ·012∧00=012 ● 00001010 ● (Λ)00000000 ● 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=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 。1 它相当于上面的前两个赋值语句:“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.1.4 “取反”运算符(~) ·一是一个单目(元)运算符,用来对一个二进制数按 位取反,即将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 ● () ● 111111111101010 。 即八进制数177752。因此,~025的值为八进制数 177752。不要以为025的值是-025。 ·下面举一例说明~运算符的应用。 ·若一个整数a为16位,想使最低一位为0,可以用 a=a&0177776 ·177776即二进制数1111111111111110,如果a的值为 八进制数75,a&0177776的运算可以表示如下:
• 000000000010101 • (~) ↓ • 111111111101010 • 即八进制数177752。因此,~025的值为八进制数 177752。不要以为~025的值是-025。 • 下面举一例说明~运算符的应用。 • 若一个整数a为16位,想使最低一位为0,可以用 a=a & 0177776 • 177776即二进制数1111111111111110,如果a的值为 八进制数75,a & 0177776的运算可以表示如下: