假设您有一个值k in [32,126]
和另一个值p in [32,126]
。如果计算p xor k
,可能会得到较低的值,例如[32,126]中不会包含0。保持在[32,127]之内的一个技巧是计算p xor (k and 15)
。 and(k,15)
消除了k
的4个最高有效位,同时保留了k
的最低有效位。
但是,127是ASCII表中的控制字符。您能做些优雅的事情,使范围从32到126,而不是32到127吗?
假设您有一个值k in [32,126]
和另一个值p in [32,126]
。如果计算p xor k
,可能会得到较低的值,例如[32,126]中不会包含0。保持在[32,127]之内的一个技巧是计算p xor (k and 15)
。 and(k,15)
消除了k
的4个最高有效位,同时保留了k
的最低有效位。
但是,127是ASCII表中的控制字符。您能做些优雅的事情,使范围从32到126,而不是32到127吗?