2010-10-19 33 views
6

Làm thế nào để mô phỏng các trường bit trong Scala? Các trường bit được sử dụng để truy cập một số bit của một loại (như thế này trong C link). Tôi biết nó có thể viết với các nhà khai thác bit, nhưng tôi nghĩ rằng có một cách tốt hơn nếu không xem xét hiệu suất.Các trường bit trong Scala

Cảm ơn mọi gợi ý có thể cung cấp.

Trả lời

8

Nếu bạn chỉ muốn một bit, thì collection.BitSet sẽ hoạt động cho bạn.

Nếu bạn muốn có một lớp trường bit thích hợp, thì bạn sẽ không may mắn vì hai lý do. Đầu tiên, bởi vì Scala không có. Thứ hai, bởi vì ngay cả khi nó đã làm, tiết kiệm không gian có lẽ sẽ không được rất ấn tượng kể từ khi trên không của đối tượng kèm theo có lẽ sẽ lớn so với bit của bạn.

Có một vài cách trong số này với một số công việc: một lớp được định nghĩa tùy chỉnh bao bọc một số nguyên và cho phép bạn hoạt động trên các phần của nó dưới dạng các trường bit; khi bạn đi để lưu trữ các số nguyên, mặc dù, bạn chỉ có nó được lưu như là một int nguyên thủy. Hoặc bạn có thể tạo một mảng các cấu trúc trường bit (chiều dài tùy ý) được thực hiện như một mảng các số nguyên. Nhưng không có gì giống như được xây dựng trong; bạn sẽ phải cuộn của riêng bạn.

2

Đáng buồn là không ... Toán tử shift và toán tử boolean bitwise là khá nhiều thứ bạn có.

+0

Với kiến ​​thức hiện tại của tôi Scala Tôi không biết làm thế nào để làm, nhưng tôi nghĩ rằng có thể sử dụng một số cấu trúc của các tính trạng. Cảm ơn vi đa trả lơi :) – adelarsq

2

Ngoài ra còn có repo này,

từ canh biến thể nén của lớp bitset Java. Nó sử dụng lược đồ nén mã hóa chạy dài 64 bit (RLE).

http://code.google.com/p/javaewah/

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