【发布时间】:2013-02-10 18:39:27
【问题描述】:
您好,我正在尝试做一些应该很简单的事情,但我想不通。 我有一个指向无符号字符数组的指针,我得到第一个元素,它是一个十六进制数。我想将其转换为二进制,以便检查它是否等于诸如 0x01101000 之类的数字。
unsigned char arr[] = {0x25}; //just for example. I am actually using *arr.
unsigned char byte = arr[0];
if(( byte & 0x01101000) == //not sure if this is the right way to proceed
不胜感激!谢谢!!
【问题讨论】:
-
C 语言没有表达二进制文字的结构。此外,计算机中的所有数字最终都是二进制的,这意味着仅比较任意两个整数实际上是在比较两个二进制数。
-
0x01101000是一个十六进制数,你知道吗?二进制表示为1000100000001000000000000。 -
数字都是二进制的,无论你使用哪种文字。如果被误解为二进制,你真的想建立一个十六进制表示会给出 25 的数字吗?
-
糟糕,我不是在寻找二进制文件。我想我只是想比较2个十六进制数字呢?在这种情况下, if(byte == 0x01101000) 会给我正确的结果吗?
-
您必须手动进行转换。为此制作一个函数。