2011-08-10 30 views
6

Tôi đang sử dụng một công nghệ có tên là DDS và trong IDL, nó không hỗ trợ int. Vì vậy, tôi figured tôi sẽ chỉ sử dụng short. Tôi không cần nhiều bit. Tuy nhiên, khi tôi làm điều này:Hoạt động bitwise trên

short bit = 0; 
System.out.println(bit); 
bit = bit | 0x00000001; 
System.out.println(bit); 
bit = bit & ~0x00000001; 
bit = bit | 0x00000002; 
System.out.println(bit); 

Nó nói "Loại không phù hợp: Không thể chuyển đổi từ ngắn thành". Khi tôi thay đổi short thành long, nó hoạt động tốt.

Có thể thực hiện các thao tác bitwise như thế này trên short trong Java không?

Trả lời

1

hiểu biết của tôi là java không hỗ trợ các giá trị ngắn. Nhưng điều này đã làm việc cho tôi:

short bit = 0; 
short one = 1; 
short two = 2; 
short other = (short)~one; 
System.out.println(bit); 
bit |= one; 
System.out.println(bit); 
bit &= other; 
bit |= two; 
System.out.println(bit); 
Các vấn đề liên quan