我想通過歐幾里德方法計算兩個數字的GCD,並注意到奇怪的行爲。儘管我將該數字的值傳遞給函數,但數字通過函數修改了位數較少(通常小於64)的數字。任何人都可以澄清,如果這是我的錯誤或預期的行爲?你可以在這裏查看操場上的代碼:Golang playground example 我認爲預期的行爲是不應該通過將它們傳遞給我的函數來改變值。感謝您的幫助,在搜索的最後一天我找不到任何其他類似事件。
我試圖包含64位,使用此代碼十六進制這個二進制字符串轉換: String mm = "1000010111101000000100110101010000001111000010101011010000000101";
String v = new BigInteger(mm, 2).toString(16);
v=String.format("%64x", v);
,但它給了我這樣的例外
考慮下面的代碼: int i = 1;
System.out.println("1 binary: " + Long.toBinaryString(i));
long ri = Long.reverse(i);
System.out.println("1 reverse bit decimal: " + ri);
System.out.println("1 reverse bit bina