我正在尝试将给定int的所有位取反(也称为取反)。
让我们说给定数字(给定数字为5)的二进制表示形式为101,否定(我的输出)应为010。
我对每个从最低有效位到最高有效位的位使用〜来求反。
function onRequest(req, res) {
// … other code …
if (someCondition) {
functionOfTheOriginalPost(req, res);
return;
// ^-- This is the return that I forgot so it
// was jumping down in the "404" area
}
res.writeHead(404);
res.end();
}
http.createServer(onRequest).listen(3000);
我的输出结果是 -2-1-2
那是为什么?我在做什么错了?
答案 0 :(得分:1)
因为您要反转
的每个数字int msb = Character.getNumericValue(givenNumInBinary.charAt(i));
output.append(~msb);
而不是反转每个位。
替代解决方案是
output.append(msb == 0 ? 1 : 0);
....
System.out.println(output.toString());
输出
010