gpt4 book ai didi

c++ - 比较保存十六进制值的 Char C++

转载 作者:行者123 更新时间:2023-11-30 03:12:49 28 4
gpt4 key购买 nike

在 C++ 中,我有两个字符保存十六进制值,例如:

char t = 0x4;
char q = 0x4;

如果 char 中保存的两个值相同,我将如何比较?我试过了

if (t == q) // should give me true

但是不,任何帮助,谢谢!

最佳答案

char 只是一个 8 位整数。使用十六进制或十进制文字初始化它并不重要,无论哪种情况,之后 char 的值都是相同的。

所以:

char t = 0x4;
char q = 0x4;
if(t == q)
{
//They are the same
}

相当于:

char t = 4;
char q = 4;
if(t == q)
{
//They are the same
}

你提到上面不是真的,但你的代码一定有错误或者t和q一定不一样。

您的建议...

if (t == q) // should give me true but no, any help, thanks!

不正确。为什么?

t & q 进行按位比较,返回两个对齐位均为 1 的值。

只要 t 和 q 的任何位相同,术语“if(t&q)”就会返回 true。

所以如果 t = 3 二进制 00000011 和 q = 1 二进制 00000001 那么即使知道它们不相等,(t&q) 也会返回 true。

关于c++ - 比较保存十六进制值的 Char C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/257286/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com