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

发布于 2024-07-07 22:27:05 字数 207 浏览 7 评论 0原文

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

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

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

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

,但是不行,请帮忙,谢谢!

in C++ I have two chars holding hex values e.g.:

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

How would i compare if the two values held in the char are the same?? I tried

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

but no, any help, thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

日记撕了你也走了 2024-07-14 22:27:05

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) // 应该给我 true
但不,任何帮助,谢谢!

不正确。 为什么

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

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

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

A char is just an 8-bit integer. It doesn't matter if you initialized it with hex or decimal literal, in either case the value of the char will be the same afterwards.

So:

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

It is equivalent to:

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

You mentioned that the above is not true, but you must have an error in your code or t and q must not be the same.

What you suggested...

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

is not correct. Why?

t & q does a bitwise compare, returning a value where both aligned bits are 1.

The term "if(t&q)" would return true as long as any of the bits of t and q are in common.

so if t = 3 which is in binary 00000011 and q = 1 which is in binary 00000001 then (t&q) would return true even know they are not equal.

潜移默化 2024-07-14 22:27:05

啊,我找到了解决方案:

if (t & q)

Ah, I found the solution:

if (t & q)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文