【问题标题】:QByteArray data format explanationQByteArray 数据格式说明
【发布时间】:2012-12-28 03:31:52
【问题描述】:

我对 QByteArray 数据感到困惑。有人可以为我解释以下情况。

这里每个数组索引的数据类型是char。我理解其中的一些价值观。喜欢74 'J' 我知道第一个是ASCII,第二个是相应的字符。但是-1 '\\377'是什么意思

下面的gui是什么意思??我将上面的 QByteArray 发送到一个函数,该函数将 QByteArray 作为unsigned char* source。下面的 gui 显示了 source 的值。

主要令人困惑的部分是第一行的值0x87089e8 "\377\330\377\340"

【问题讨论】:

  • 如果您告诉我们您存储在其中的内容会有所帮助。
  • 此数据包含一个包含 jpeg 图像的网络请求回复。谢谢。

标签: c++ c char ascii qbytearray


【解决方案1】:

我在回答0x87089e8 "\377\330\377\340"的含义。

0x87089e8source 指针的值,即它是一个地址 在记忆中。 "\377\330\377\340" 是存储在那里的字符串 地址,写成八进制转义序列。是这样写的 因为这些字符都不是 ASCII(ASCII 只从 0 到 127)。在十六进制中,字节串是ff d8 ff e0 00。最后的00 被解释为字符串结束标记(ASCII NULL)。

【讨论】:

  • 感谢您的解释:)
【解决方案2】:

char 在 C/C++ 中是一个 有符号 1 字节整数。此 GUI 只是将该值表示为带符号的十进制数,以及等效的 ASCII 字符。

你问的是字节值-1,可以用以下方式解释:

Binary     11111111
Octal      0377
Hex        0xFF
Decimal    -1    (Signed)
           255   (Unsigned)

ASCII      \377
           \xFF

请注意,255 没有标准的可打印 ASCII 字符,这就是为什么他们会像现在这样显示它。

另一个例子:

Binary     01001010
Octal      0112
Hex        0x4A
Decimal    74    (Signed)
           74   (Unsigned)
ASCII      'J'

【讨论】:

  • 您好,我理解您解释得很好的部分。谢谢。我在这个问题中添加了另一部分。你也能回答一下吗?谢谢。
猜你喜欢
  • 2023-03-10
  • 2016-09-16
  • 1970-01-01
  • 1970-01-01
  • 2018-07-01
  • 2017-11-23
  • 2016-02-13
  • 2013-08-28
  • 1970-01-01
相关资源
最近更新 更多