c++ - 使用 C++ 选择性地访问数据类型的位

标签 c++ casting bit-manipulation systemc

我使用 C++ 通过 SystemC 进行基于硬件的模型设计。 SystemC 作为 C++ 扩展引入了对信号和字节描述有用的特定数据类型。

一般情况下如何访问数据类型的前几位,例如:

sc_bv<16> R0;

或访问 tmp 的前四位。

int my_array[42];
int tmp = my_array[1];

sc_bv 是一种位 vector 数据类型,用于存储二进制序列。现在我想要那个数据类型 e 的前四位。 g.. 我的背景是 C# 和 Java,因此我通常会错过一些基于 OOP 和 Reflexion 的 API 构造。我需要对这些低级的东西进行转换。有用的介绍性内容会有很大帮助。

谢谢 :), 祝愿

最佳答案

对于sc_bv,可以使用索引运算符[]

对于 int,只需使用带常量的正常位运算,例如tmp 中的最低有效位是 tmp & 1

关于c++ - 使用 C++ 选择性地访问数据类型的位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4246205/

相关文章:

python - 如何在 python3 中有效地将位从一个字节数组打包到另一个字节数组?

bit-manipulation - 关于使用位图存储多个值的快速备忘单

php - 如何正确解析 PHP 中的整数?

c++ - 使用 boost 读取执行命令的结果(C++ 库)

c++ - 如何检查是否有足够的可用堆内存?

c++ - Windows下编译的QT app计算错误

c# - 将 c# Array.CreateInstance 创建的非基于 0 的数组转换为集合 T

postgresql - 在电话字段的前 3 个字符(区号)上创建索引?

Javascript 位操作问题

c++ - 我可以通过返回构造函数直接返回对象吗?