有一个位序列。是否可以在其他位之间的特定位置插入该位?
例如:


我们有一些数字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);
}

08-07 19:40