gpt4 book ai didi

c++ - 如何解析来自 EDID 的数字数据

转载 作者:行者123 更新时间:2023-11-28 03:38:21 27 4
gpt4 key购买 nike

我有一种方法可以使用 nVidia API 获取显示器的 EDID 信息,这为我提供了一个包含 128 个无符号字符的数组。在 wikipedia 上阅读 edid 数据格式时但是我注意到制造商 ID 中的字母(字节 8-9)表示为 5 位数字,所以我不知道如何将其作为有意义的数据读入 C++。

我的计划是只定义一个与 edid 格式匹配的结构类型,并将我的 char 数组转换为该结构类型,但我不知道现在是否可行,因为我知道 C++ 中的最小数据类型大小为一个字节。

谢谢。

比尔。

最佳答案

为了提取和操作小于一个字节的信息,您需要使用bit-wise operations。 .

例如,为了提取存储为 char 的前 5 位(最低有效位)的 5 位数字,你可以说:

unsigned char x = (BYTE & 0x1F);

它将存储 BYTE 右 5 位表示的值在 x .在那个例子中,我使用了一个 AND 运算符(C/C++ 中的 & 运算符),它基本上使用掩码来隐藏值的 3 个最重要(最左边)位,(使用十六进制值 1F,这是 00011111 二进制)隔离初始 5 位。

其他按位运算符包括 OR、XOR 和左/右移位,它们在 C++ 中使用 | 执行。 , ^ , <<>>运营商分别。

关于c++ - 如何解析来自 EDID 的数字数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10191049/

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