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

如何在单个字节中替换指定4位数据而不修改其余4位?

单字节内替换高位4位数字(保留低位)

核心思路是先清除原字节的高4位,再将新的高位数字左移4位后,和保留的低位数字合并。

完整代码示例:

// 初始存储两个数字到单字节
byte firstNumber = 10;
byte secondNumber = 15;
byte bothNumbers = (byte) ((firstNumber << 4) | secondNumber);

// 替换第一个数字为13,保留低位的15
firstNumber = 13;
bothNumbers = (byte) ((firstNumber << 4) | (bothNumbers & 0x0F));

// 验证结果(可选)
byte updatedFirst = (byte) ((bothNumbers >> 4) & 0x0F);
byte unchangedSecond = (byte) (bothNumbers & 0x0F);
// updatedFirst 结果为13,unchangedSecond 仍为15

如果需要替换低位数字同时保留高位,逻辑类似:用掩码0xF0清除低4位,再将新的低位数字和保留的高位合并:

// 替换第二个数字为12,保留高位的10
secondNumber = 12;
bothNumbers = (byte) ((bothNumbers & 0xF0) | secondNumber);

原理说明

  • 0x0F对应二进制00001111,与原字节做&操作会清零高4位,仅保留低4位。
  • 0xF0对应二进制11110000,与原字节做&操作会清零低4位,仅保留高4位。
  • 左移4位<<4是将4位数字移动到字节的高半区;右移4位>>4则是把高半区数字移回低半区,再用&0x0F消除byte有符号类型带来的符号位干扰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:48:50