将 8 位转换为等效的缩放 12 位

标签 c algorithm converter

我需要将一个 8 位数字(0 - 255 或 #0 - #FF)转换为其等效的 12 位数字(0 - 4095 或 #0 - #FFF)

我不想直接转换相同的数字。我想表示相同的比例,但以 12 位表示。

例如:-

8 位的 0xFF 应该转换为 12 位的 0xFFF

8 位的 0x0 应该转换为 12 位的 0x0

8 位的 0x7F 应该转换为 12 位的 0x7FF

8 位的 0x24 应该转换为 12 位的 0x249

是否有任何我应该使用的特定算法或技术?

我正在用 C 编写代码

最佳答案

尝试 x << 4 | x >> 4 .

这已由 OP 更新,从 x << 4 + x >> 4 更改

关于将 8 位转换为等效的缩放 12 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21220326/

相关文章:

c - 我正在编写这个程序来查找单个数字中的两位数奇数,但我被困住了

c - 查找未运行的网络接口(interface)

c - 如何使用文本中的自定义字体创建 PNG 图像

ios - 在Swift中有效地在Array上生成连续且相同的数字

c++ - 基于 std::vector<string> 的内容动态设置顺序的模式

c - 什么是 C 语言中的编译时封装?

python - None 对象的返回值

java - 如何将 PCM 原始数据转换为 mp3 文件?

java - 是否可以自动将java代码转换为PHP?

jsf - 使用 "Please select"f :selectItem with null/empty value inside a p:selectOneMenu