3
比方說,我有一些用戶輸入(如字符串),如「11010011011」。Java中的按位運算:測試是否在「1010101111011」中設置了一位?
現在我想檢查一下特定位置是否有位(每個數字應該作爲標誌)。
注意:我正在接收用戶輸入的字符串。
我該怎麼做?
比方說,我有一些用戶輸入(如字符串),如「11010011011」。Java中的按位運算:測試是否在「1010101111011」中設置了一位?
現在我想檢查一下特定位置是否有位(每個數字應該作爲標誌)。
注意:我正在接收用戶輸入的字符串。
我該怎麼做?
你可以用字符串上班是 - 說你要檢查左邊第一位:
if (input.charAt(0) == '1') { //
另外,如果您想用BitSet工作,你可以在一個循環中初始化它:
String input = "11010011011";
BitSet bs = new BitSet(input.length());
int i = 0;
for (char c : input.toCharArray()) {
if (c == '1') bs.set(i);
i++;
}
然後,以檢查第i位被設置:
boolean isSet = bs.get(i);
如果你想使用按位運算,那麼首先將字符串轉換爲整數並用位掩碼測試:
int val = Integer.parseInt("11010011011", 2);
System.out.println(val & (1<<0)); //First bit
System.out.println(val & (1<<1)); //Second bit
System.out.println(val & (1<<2)); //Third bit
.....
不能使用'charAt(position)'方法嗎?和比較值是0/1? –
爲什麼你必須使用按位操作來做到這一點?!?!?! – Pigueiras
我不知道什麼是最好的方式來做到這一點。也許我不需要按位操作。 – mrd