繁体   English   中英

求解变量

[英]Solving for a Variable

提示:本站为国内最大中英文翻译问答网站,提供中英文对照查看,鼠标放在中文字句上可显示英文原文

在比较 function 中,我如何解决变量num ,这将是我自己对程序的输入?

主 function(部分)

int input;
answer = compare(input);

if(answer !=0xb88202) {
   printf("Keep trying!");
   exit(0);
}

puts("You got it");

比较 function

uint compare(uint num) {
     return (num ^ 0x735) >> 4 ^ 0x6f0;
}

老实说,我不确定如何解决这个问题 go。 我想以某种方式用另一个 XOR 反转 XOR 会有所帮助。 我还尝试将0xb88202 4 ^ 0x6f0 ,但我就是想不通。

只需将比较 function 中的操作反转即可。

input = (0xb88202 ^ 0x6f0) << 4 ^ 0x735

将其视为一个方程式并求解。 你有

answer == ((num ^ 0x735) >> 4) ^ 0x6f0

xor 是它自己的逆,所以你得到

answer ^ 0x6f0 == (num ^ 0x735) >> 4

(answer ^ 0x6f0) << 4 == (num ^ 0x735)

((answer ^ 0x6f0) << 4) ^ 0x735 == num

这对于移位来说不太正确,因为右移丢失了左移无法恢复的位(移出底部),但这仅意味着num的多个值将为您提供answer ,这会发现其中之一。

问题未解决?试试搜索: 求解变量
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2023 STACKOOM.COM