課程
/后端開發
/Java
/文件傳輸基礎——Java IO流
右移動24位,導致高24為全是0 再進行按位于操作,不還是原來那個數嗎?怎么就清零了呢?
2017-11-23
源自:文件傳輸基礎——Java IO流 3-1
正在回答
?writeInt()方法中的源碼? 每次讀取字節信息 都是經過了一次無符號右移和位與操作。 而老師在寫入一個字節的時候并沒有寫位與操作。 因此其實寫不寫都可以 因為每次讀取的信息都是低八位。 但是源碼中的位與操作 確實做到了“清零”。 這個清零意思指的是 將前面24高位均置為0.
舉負數說明:? 11111111? ?11111111? ?11101000 11110111??
右移24位? 00000000? ?00000000? ?00000000? ?11111111? ?位與0xff 后 結果 為0xff? 讀取 0xff
右移16位 00000000? ?00000000? ?11111111? ?11111111? ?位與0xff后? ?結果為? 0xff? ?讀取 0xff
右移8位? 00000000? ?11111111? ?11111111? ? 11101000? 位與0xff后? ?結果為? 0xe8? ?讀取0xe8
右移0位? ?11111111? ? 11111111? ?11101000? ?11110111? 位與0xff后? ?結果為0xf7? ?讀取0xf7
看資料說 讀取字節信息 進行位與0xff操作 是為了保證二進制數據的一致性。? 這樣傳輸的二進制信息是安全的。
位于不就是對應相乘嗎
一次就讀8個bit啊,所以清零了你也不用讀。就算不清零你也讀不到
織夢_ 提問者
舉報
為您介紹IO流的使用,以及對象的序列化和反序列化的內容
3 回答為什么位與0xff后能去掉前面的0
2 回答0xff有關的與運算
1 回答0xff的作用
1 回答&0xff的作用
3 回答將高24位清零是不是把原來的數據改變了。。。
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-05-01
?writeInt()方法中的源碼? 每次讀取字節信息 都是經過了一次無符號右移和位與操作。 而老師在寫入一個字節的時候并沒有寫位與操作。 因此其實寫不寫都可以 因為每次讀取的信息都是低八位。 但是源碼中的位與操作 確實做到了“清零”。 這個清零意思指的是 將前面24高位均置為0.
舉負數說明:? 11111111? ?11111111? ?11101000 11110111??
右移24位? 00000000? ?00000000? ?00000000? ?11111111? ?位與0xff 后 結果 為0xff? 讀取 0xff
右移16位 00000000? ?00000000? ?11111111? ?11111111? ?位與0xff后? ?結果為? 0xff? ?讀取 0xff
右移8位? 00000000? ?11111111? ?11111111? ? 11101000? 位與0xff后? ?結果為? 0xe8? ?讀取0xe8
右移0位? ?11111111? ? 11111111? ?11101000? ?11110111? 位與0xff后? ?結果為0xf7? ?讀取0xf7
看資料說 讀取字節信息 進行位與0xff操作 是為了保證二進制數據的一致性。? 這樣傳輸的二進制信息是安全的。
2018-05-10
位于不就是對應相乘嗎
2017-11-24
一次就讀8個bit啊,所以清零了你也不用讀。就算不清零你也讀不到
2017-11-24
一次就讀8個bit啊,所以清零了你也不用讀。就算不清零你也讀不到