有一个位序列。是否可以在其他位之间的特定位置插入该位?
例如:
我们有一些数字long n
,看起来像10010
这样的二进制数字。
我们有一些方法long insert(long numb, position)
;
使用insert(n, 2)
之后,我们必须获得以下位序列:101010
感谢您的回答!
最佳答案
将long
转换为二进制String
在指定位置插入位
然后将其转换回long
public long insert(long number, int position) {
String longString = Long.toBinaryString(number);
longString = longString.substring(0, position) + "1" + longString.substring(position);
return Long.parseLong(longString, 2);
}