c++ - 数组偏移量和位#

标签 c++ arrays

我想知道数组偏移量和数组位# 是什么?

例如像哈希函数一样的数组偏移量。假设给定 x 作为散列函数的参数。数组偏移量可以是 x>>5 (x/32)。位数可以是 x&0x1F (x%32)。我不明白什么是偏移量,什么是“位数”。

哦,是的,数组是指向整数指针的数组。所以...int* array[size];

谢谢

最佳答案

听起来您所说的代码正在访问 32 位整数数组中的位。所以,比方说,位 #0 总体将是 int #0 的位 #0,位 #31 总体将是 int #0 的位 #31,位 #32 总体将是 int #1 的位 #0(因为你用完了int #0 中的位)等

因此,要查看的 int# 是您的总位# 除以 32(因为每个 int 用完 32 位),而要查看的 bit# 是您除以 32 后剩下的部分。

您在 x >> 5x & 0x1F 中提到的位运算只是执行这些操作的一种快速方法。

关于c++ - 数组偏移量和位#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5320105/

相关文章:

c++ - 在 header 或 .cpp 中重载输入操作 >>

c - printf 命令导致段错误?

arrays - 有没有一种简单的方法可以在 Fortran 中找到索引数组零?

java - 如何在 Java 中按步幅对 int 数组进行切片?

python - 获取 numpy 数组的所有子序列

c++ - 写入 std::string 是否合法?

c++ - 如何使用 BSD 套接字查找 ip 地址?

c++ - directory_iterator 和/或 recursive_directory_iterator 是否保证返回相对路径?

c++ - boost::asio 套接字 async_read_some 操作导致内存泄漏

c - 函数声明中的数组大小