当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《比较保存十六进制值C++的Char》经验,为你挑选了1个好方法。

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

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

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

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

但没有,任何帮助,谢谢!



1> Brian R. Bon..:

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必须不相同.

你的建议......

如果(t == q)//应该给我真实但没有,任何帮助,谢谢!

是不正确的.为什么?

t&q进行逐位比较,返回两个对齐位为1的值.

只要t和q的任何位是共同的,术语"if(t&q)"将返回true.

所以如果t = 3,它是二进制00000011,q = 1,它是二进制00000001,则(t&q)将返回true,即使知道它们不相等.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有