java - Java中的按位运算子串

标签 java substring bitwise-operators

假设您有一个数字的二进制或十六进制表示。让我们看看这个:

int number  = 0xffffff;
// this would recover the third f, as a stand-alone value, value of third_f would be just f
int third_f = byteSubstring(number,2,1);
// third and fourth f, value of tf would be ff
int tf = byteSubstring(number,2,2);
// all except first, value of except_first would be fffff
int except_first = byteSubstring(number,1,5);

使用单独的按位运算、笔和纸,我知道如何提取所有这些,但将它们组合在一个通用函数中……:)。 JDK 中是否已经提供了可以为数字类型执行此操作的功能?

最佳答案

你有一个 sizeoffset以位指定。传统上,位从 LSB 开始编号。

您处理 offset向右移动

result = x >>> offset

您通过 mask 处理尺寸; (1 << size) - 1是面具

result = result & ((1 << size) - 1)

关于java - Java中的按位运算子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6169907/

相关文章:

java - Tomcat 为带空格的请求 URI 返回 505

java - 让 Swing Timer 执行 N 次?

C - 打印具有相同设置位和未设置位的所有数字

javascript - 按位求反和按位异或 1 不等价?

java - 上下文服务竞争条件

java - 选择使用 hibernate

c++ - 查找一个字符串 ("AB") 是否是另一个 ("ABCD") 的子集?

regex - 在模式 PostgreSQL 之后提取字符串

sql - 如何检查字符串是否包含 case 语句中的单词 - SQLite

java - 一条线上的多个分配未按预期工作