有一系列位。是否可以将位插入其他位之间的特定位置?
例如:
long n
,它看起来像二进制,如10010
; long insert(long numb, position)
; insert(n, 2)
后,我们必须按以下顺序排列:10 1 010 感谢您的回答!
答案 0 :(得分:3)
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);
}
答案 1 :(得分:0)
我会将数字'n'向左移1位。然后我会创建一个值为1的long l1,将其左移“positon”位,最后是OR l1和n。
此外,根据您的使用情况,可能需要在移出(或执行位)之前保存/保留最高有效位。