為什么第一種寫法回圈到8和9的時候,結果和預期不一樣,
如果程式將11111110當成10進制的數(十進制11111110的二進制為?101010011000101011000110?)
那么前面7次回圈的結果又該怎么解釋呢

uj5u.com熱心網友回復:
在Java中默認int值是10進制的,所以你第一張圖中的所有數字都是10進制數,包括(i | 11111110)和控制臺列印出來的都是10進制。至于1-7的結果和8,9的不同,是因為,1-7轉化成二進制 與 11111110轉化成二進制 進行按位或運算后對原數字(11111110)只有加1或加0的不同。8,9兩個數轉化成二進制是四位數,你換算一下就看出來了。
直接將數字標記為二進制的計算:

uj5u.com熱心網友回復:
你自己用二進制推算一下就清楚了101010011000101011000110 | 00000000 = 101010011000101011000110 // i=0
101010011000101011000110 | 00000001 = 101010011000101011000111 // 1
101010011000101011000110 | 00000010 = 101010011000101011000110 // 2
101010011000101011000110 | 00000011 = 101010011000101011000111 // 3
101010011000101011000110 | 00000100 = 101010011000101011000110 // 4
101010011000101011000110 | 00000101 = 101010011000101011000111 // 5
101010011000101011000110 | 00000110 = 101010011000101011000110 // 6
101010011000101011000110 | 00000111 = 101010011000101011000111 // 7
101010011000101011000110 | 00001000 = 101010011000101011001110 // 8
101010011000101011000111 | 00001001 = 101010011000101011001111 // 9
0-1的時候,11111110只有二進制的低1位受到影響
2-3的時候,11111110只有二進制的低2位受到影響
4-7的時候,11111110只有二進制的低3位受到影響
8開始的時,11111110二進制的低4位開始受到影響,而11111110本來的第4位是0,受到影響變為了1,所以影響會比較大
uj5u.com熱心網友回復:
感謝解答????uj5u.com熱心網友回復:
感謝解答????
uj5u.com熱心網友回復:
感謝解答????
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/121232.html
標籤:Java SE
下一篇:求解JAVA程式
