x = x & ~077 与 x = x & 0177700 都将 x 后六位置 0,x & ~077与机器字长无关,可移植性强,而且没有额外的开销;而 x & 0177700将 x 假定为16位长度的数值,当机器不同导致变量 x 的长度改变时,结果不同,不具有可移植性。
因此,在需要用到某些位为0或者1而高位全为1的数据时,采用将高位为0的数取反的方式获得,可以保证可移植性。
x = x & ~077 与 x = x & 0177700 都将 x 后六位置 0,x & ~077与机器字长无关,可移植性强,而且没有额外的开销;而 x & 0177700将 x 假定为16位长度的数值,当机器不同导致变量 x 的长度改变时,结果不同,不具有可移植性。
因此,在需要用到某些位为0或者1而高位全为1的数据时,采用将高位为0的数取反的方式获得,可以保证可移植性。