2010-10-25 41 views
22

Có bất kỳ lý do cụ thể nào khiến loại này không được bao gồm trong khi các định dạng hex và bát phân được cho phép không?Tại sao không có chữ nhị phân trong Java?

+0

Nó không được bao gồm trong hầu hết các ngôn ngữ, có thể cùng một lý do cho nó không được bao gồm trong Java. Nhưng tôi vẫn muốn biết lý do chung. –

+0

Cảm ơn các bạn vì đã trả lời nhanh. Tóm lại, tôi sẽ nói nó không được bao gồm đơn giản bởi vì C không có nó và không thực sự bởi vì nó làm tăng thêm sự phức tạp. Heck, bát phân được bao gồm và tôi không thấy nhiều việc sử dụng nó so với nhị phân nhưng chỉ vì C có nó. Như chúng ta có thể thấy từ đề xuất này http://mail.openjdk.java.net/pipermail/coin-dev/2009-March/000929.html, các số nhị phân có rất nhiều lợi thế đặc biệt trong miền định hướng bit. –

Trả lời

26

Java 7 bao gồm it.Check các new features.

Ví dụ:

int binary = 0b1001_1001; 
+8

Đây là tài liệu tham khảo "chính thức" gần đây và nhiều hơn nữa - http://openjdk.java.net/projects/coin/ –

+1

Liên kết tuyệt vời +1. Nó dẫn tôi đến http://mail.openjdk.java.net/pipermail/coin-dev/2009-March/000929.html tổng hợp tất cả các lý do của tôi tại sao tôi muốn xem một chữ nhị phân. –

+2

Có liên kết gần đây hơn: http://download.oracle.com/javase/7/docs/technotes/guides/language/binary-literals.html –

25

literals Binary đã được giới thiệu trong Java 7. Xem "Improved Integer Literals":

int i = 0b1001001; 

Lý do không bao gồm chúng từ ngày đầu tiên rất có thể là như sau: Java là một ngôn ngữ cấp cao và đã được khá hạn chế khi nói đến các cấu trúc ngôn ngữ ít quan trọng và mức độ thấp. Các nhà phát triển Java đã có một chính sách chung về "nếu nghi ngờ, hãy giữ nó ra".

Nếu bạn đang ở trên Java 6 trở lên, lựa chọn tốt nhất của bạn là để làm

int yourInteger = Integer.parseInt("100100101", 2); 
+4

C là ngôn ngữ trung cấp và có lịch sử khá thuận lợi khi nói đến các cấu trúc ngôn ngữ rất thấp. Tuy nhiên, không có chữ số nhị phân. –

+1

Vâng, đó là IMO xa lạ. Nó đã có mặt trong GCC khá lâu mặc dù tôi hiểu nó. – aioobe

+1

Có bao nhiêu người tìm thấy các chữ số bát phân hữu ích hơn so với những gì họ tìm thấy nhị phân? – supercat

1

Các associated bug mở cửa kể từ tháng Tư năm 2004, có ưu tiên thấp và được coi là một yêu cầu tăng cường bởi Sun/Oracle .

Tôi đoán họ nghĩ literals nhị phân sẽ làm cho ngôn ngữ phức tạp hơn và không cung cấp lợi ích rõ ràng ...

0

Dường như có một ấn tượng ở đây là thực hiện literals nhị phân là phức tạp. Nó không phải là. Sẽ mất khoảng năm phút. Cộng với các trường hợp kiểm tra tất nhiên.

Các vấn đề liên quan