c++ - 这是在做什么 : "input >> 4 & 0x0F"?

标签 c++ bitwise-operators

我完全不明白这段代码在做什么,有人可以解释一下吗?

long input;  //just here to show the type, assume it has a value stored
unsigned int output( input >> 4 & 0x0F );

谢谢

最佳答案

将输入向右移动 4 位,然后用低 4 位屏蔽。

以16位数字为例:(点只是为了视觉分隔)

1001.1111.1101.1001 >> 4 = 0000.1001.1111.1101

0000.1001.1111.1101 & 0x0F = 1101 (or 0000.0000.0000.1101 to be more explicit)

关于c++ - 这是在做什么 : "input >> 4 & 0x0F"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12515412/

相关文章:

c# - int 最大值 = ~0;这是什么意思?

c++ - 如何有效删除存储在多个容器中的C++对象?自动指针?

java - java如何处理按位运算符的结果

python - 在字典中对内存的解决方案进行分组

C++ 如何遍历结构列表并访问它们的属性

C比较两个位图的最快方法

java - 用二元运算检查除以 3?

c++ - protocol buffers + zlib = 未解析的外部符号

c++ - Haar 检测 - 保存图像的 Mat 以获取和显示前一帧

c++ - 如何使用 Qt DOM 通过此语法获取 xml 属性