我用两种不同的语言编写了以下程序。我把它合二为一,除了我被困在另一个部分之外。
在C#中:
object a(dynamic a) {
dynamic b = "00000000".ToCharArray(), c = 7;
while (a > 0) {
b[c--] = (a ^ 1) > (a + ((a >>= 1) * 0)) ? '0' : '1';
}
return b;
}
object v = a(11), n = b(v);
object b(dynamic b) {
dynamic a = 0, c;
for (c = a; c < 8; c++) {
a += b[c] == '0' ? 0 : 1 << (7 ^ c);
}
return a;
}
在JavaScript中:
function a(a) {
b = ['0', '0', '0', '0', '0', '0', '0', '0'];
c = 7;
while (a > 0) {
b[c--] = (a ^ 1) > (a + ((a >>= 1) * 0)) ? '0' : '1'
}
return b
}
function B(b) {
a = b ^ b;
for (c = a; c < 8; c++) {
a += b[c] == '0' ? 0 : 1 << (7 ^ c)
}
return a
}
在C#中,我得到以下正确的输入。
a(11)=00001011 // correct
b(a)=11 // correct
a('M')=01001101 // correct
(char)b(a)='M' // correct
在JavaScript中,当我传入一封信时,我得到全部为零。
a(11)=00001011 // correct
B(a)=11 // correct
a(‘M’)=00000000 // incorrect
B(a)=0 // incorrect because first function was incorrect
我一遍又一遍地尝试阅读逻辑,除非我被卡住了。任何帮助将不胜感激。