c# - 如何在c#中提取一个字节的第5位
问题描述
如果我有十进制12
,它的二进制表示是00001100
. 如何提取第五位,在这种情况下是1
?我尝试左移和-ing但这4
不正确。有人可以告诉我我做错了什么吗?AND
1
player = low << 4 & 1;
解决方案
您实际上想要获得3d 位(从右端开始):
00001100
^
3d from the right end (bits are zero based)
您所要做的就是在 的帮助下去掉3
低位 ( 100
)>>
并检查下一位:
// 1 if 3d bit is set, 0 otherwise
player = (low >> 3) & 1;
或者,如果您从左端5
有数字索引并假设为:low
byte
player = (low >> (sizeof(byte) * 8 - 5)) & 1;
推荐阅读
- loading - 我需要采取任何先决条件/预防措施来使“加载”屏幕在 Godot 中工作吗?
- java - 有效地,使用二进制搜索获取排序数组中小于给定数字的数字计数
- reactjs - 本地情况下,后端前端共享cookie并维护登录,但部署后不维护登录
- reactjs - 变体=“填充”不适用于
- performance - Kubernetes:无法通过更多节点增加 Req/Sec
- javascript - JSS 和 React JS 的边界半径问题
- android - 在 ViewPager 的不同页面中访问不同的子项
- javascript - 如何在 JavaScript 中模拟工作线程?
- javascript - 在 render() 中反应原生返回承诺并在 console.log 函数中正确结果
- swift - 如何使用 Codegen:类定义正确更改实体名称?