(311&255)在C++中是什么意思?
What does (311&255) mean in C++?
语句"(311&255)"在C++中是什么意思?当第二个数字是2的幂而不是任何数字时,它与加快内存访问有何关系?
运算符是一个二进制的逐位运算符,在(311 & 255)
等表达式中使用时可用于实现"位屏蔽"。
311是100110111。当您用255(二进制为11111111)执行AND运算时,结果是将位7左侧的任何位设置为零。在这种情况下,结果是00110111——最高有效位被设置为0。这就是当一组比特被用来"屏蔽"另一组比特时所指的。
100110111
& 011111111
-----------
000110111
在计算内存地址时经常使用这种操作,因为缓存和内存总线通常是按照两次方大小对齐的,这意味着当你访问一个二次方的地址时,你会将更多的内存块放入缓存中,并且需要更少的内存总线访问来获取它,软件设计者(即您)必须在意识到这一事实的情况下规划内存分配。
如果你想负责这个级别的内存,那么确切地知道你的硬件是做什么的是个好主意。
相关文章:
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- "类模板示例<int>;"语句对 C++11 是什么意思?
- 线应该是什么意思
- "CID"在AT+HTTPPARA= "CID" ,1中是什么意思
- 表达式"b=(b-x)&x"是什么意思?
- 这个表达是什么意思?
- 此代码验证公式是什么意思?
- 跟踪日志中的T.11803()是什么意思?
- 这个额外的关键字在这个 c++ 类声明中是什么意思?
- * 和 ** 在 C++ 函数声明中是什么意思?
- _T("xyz")是什么意思?
- #define Dbg(fmt,..) (0) 是什么意思? 警告:表达式无效
- 这行代码到底是什么意思?
- 在命名空间名称之前加上 :: 是什么意思?
- 从字符数组的元素中减去'a'是什么意思
- "friend"关键字在C++中是什么意思?
- 减法中的"0"是什么意思?
- 字符数组前面的加号是什么意思?
- 这里的字符串函数是什么意思