Bạn chắc chắn nên sử dụng số INT
(nếu bạn cần 32 cờ) hoặc BIGINT
(đối với 64 cờ). Nếu bạn cần thêm cờ, bạn có thể sử dụng BINARY
(nhưng bạn cũng nên tự hỏi tại sao bạn cần nhiều cờ trong ứng dụng của mình).
Bên cạnh đó, nếu bạn sử dụng loại tích phân, bạn có thể sử dụng trực tiếp tiêu chuẩn bitwise operators mà không cần chuyển mảng byte thành loại tích phân.
Nếu bạn cần thêm cờ và phải sử dụng BINARY
bạn mất hỗ trợ gốc cho các toán tử bitwise và do đó hỗ trợ dễ dàng để kiểm tra các giá trị cờ. Tôi có lẽ sẽ di chuyển kiểm tra cho các giá trị cờ cho một ứng dụng khách hàng, nhưng nếu bạn đang thoải mái lập trình trong T-SQL đó là một lựa chọn là tốt. Nếu bạn đang sử dụng C# bạn có một lớp học BitArray
với các hoạt động cần thiết và trong Java bạn có một lớp học BitSet
.
Nguồn
2009-04-30 22:30:50
vâng, hoặc sự kiện các loại nhỏ hơn như int nhỏ cho mặt nạ bit nhỏ hơn? Tôi chưa bao giờ sử dụng một int nhỏ như mặt nạ bit được nêu ra, nhưng nên không có vấn đề. công việc của int tuyệt vời. –
Loại nhỏ hơn cho mặt nạ nhỏ hơn cũng là một ý tưởng hay. –
Làm thế nào chúng ta có thể sử dụng varbinary khi chúng ta có, ví dụ, 100 lá cờ? Có thể varbinary được sử dụng linh hoạt như int hoặc bigint? Nó không thể thực hiện thao tác bitwise trên hai varbinary. Làm thế nào chúng ta có thể bắt chước hành vi int-flag? – aldebaran