【问题标题】:How do I turn an ascii char into it's hex... thing in C++?如何在 C++ 中将 ascii 字符转换为十六进制...?
【发布时间】:2017-10-26 14:41:29
【问题描述】:

我有一个包含这一行的程序:

  int xoredValue = (x ^ 0x41);

其中 x 是一个 int,我将它与它的二进制形式和十六进制代码进行异或运算。 0x41 表示一个 ascii 字母。我不想使用 0x41,而是想实现它

  char a = 'a';
  int xoredValue = (x ^ <hex of a>);

一段时间以来,我一直在想办法,结果它正在煎我的面条。有什么帮助吗?

【问题讨论】:

  • 你应该可以做到x ^ a
  • 表示不影响此处的行为。 x &amp; 0x41 等价于 x &amp; a。请注意,字符 0x41A 而不是 aA0x4165 都是相同的值。
  • 哇,谢谢!它工作大声笑
  • 十六进制只是一个值的表示。十六进制、二进制、八进制、十进制表示相同的值会做同样的事情。

标签: c++ hex


【解决方案1】:

你没有。

数字就是数字。

0x41 是一个数字,65 也是一个数字,(反直觉地)'A' 也是一个数字。无论您以十六进制、十进制还是八进制给出它,都与 XOR 运算符的工作方式完全无关,它适用于 数字

您的特定号码称为a(因为这是您为存储它的变量提供的名称)。

所以,写x ^ a

【讨论】:

  • 我希望有一个重言式标志。 +1 缺少它。
  • 是的,我知道,我之所以说 char a = 'a' 是因为我使用的是传入的数组,而我只是说例如,因为我不知道是什么错了。我没有意识到我之前使用十六进制表示“A”而不是“a”是问题的很大一部分
  • 给我reppppzz
猜你喜欢
  • 2014-11-16
  • 2011-11-21
  • 1970-01-01
  • 2016-06-27
  • 2013-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-31
相关资源
最近更新 更多