You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过单个操作将一个字节的最后3位转移至另一个字节?

位运算实现字节位替换需求

问题描述

假设存在以下字节:

byte byteOne = 0010 1011;
byte byteTwo = 0110 0000;

需要将byteOne的最后3位(即011)转移到byteTwo的最后3位,替换byteTwo原本的000。要求通过单个操作实现,且字节的值可能是动态的。

解决方案

直接使用组合位运算即可完成,代码如下:

byteTwo = (byteTwo & 0xF8) | (byteOne & 0x07);

操作原理

  • byteTwo & 0xF8:0xF8的二进制为1111 1000,与byteTwo进行按位与操作后,会将byteTwo的最后3位清零,同时保留其高5位的原始值。
  • byteOne & 0x07:0x07的二进制为0000 0111,与byteOne进行按位与操作后,仅保留byteOne的最后3位,其余位全部清零。
  • 最终将两个结果做按位或操作,就能把byteOne的最后3位精准替换到byteTwo的最后3位位置上,整个过程是单个组合操作,完全适配动态变化的字节值。

内容的提问来源于stack exchange,提问作者IamVariable

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 12:42:13