ทำไมเมื่อฉันพยายามที่จะเปลี่ยนบิตสำหรับ 11010100 2ผลที่ได้คือ 110,101,000 2ไม่ 10101000 2
int a = Integer.parseInt("11010100", 2) << 1;
ฉันพยายามทำสิ่งนี้:
int a = (byte)(Integer.parseInt("11010100", 2) << 1);
แต่ถ้ามูลค่าส่งออกมากกว่า 128 ทุกอย่างจะถูกลบซึ่งเป็นตรรกะ ฉันจะทำให้จำนวนบิตนั้นไม่เปลี่ยนแปลงได้อย่างไร
int
s หรือlong
s เสมอ