Kiểu dữ liệu Boolean

Trong khoa học máy tính, kiểu dữ liệu Boolean (tiếng Anh: Boolean data type) là một kiểu dữ liệu có một trong hai giá trị cụ thể (thường được kí hiệu là đúng (true) và sai (false)), nhằm đại diện cho hai giá trị thật (truth value) của logic và đại số Boolean. Nó được đặt theo tên của George Boole, là người đầu tiên định nghĩa một hệ thống logic đại số vào giữa thế kỷ 19. Kiểu dữ liệu Boolean chủ yếu được gắn với các câu lệnh điều kiện, cho phép các hành động khác nhau bằng cách thay đổi luồng điều khiển tùy thuộc vào điều kiện Boolean do lập trình viên chỉ định là đúng hay sai. Nó là trường hợp đặc biệt của kiểu dữ liệu logic tổng quát hơn (xem logic xác suất)—logic không nhất thiết phải luôn là Boolean. Trong các ngôn ngữ lập trình hỗ trợ sẵn kiểu dữ liệu Boolean, như Pascal và Java, toán tử so sánh (comparison operator) như > và ≠ thường được định nghĩa để trả về giá trị Boolean. Các câu lệnh điều kiện và lặp có thể được định nghĩa để kiểu tra các biểu thức có giá trị kiểu Boolean. Các ngôn ngữ không có kiểu dữ liệu Boolean rõ ràng, như C90 và Lisp, vẫn có thể biểu diễn các giá trị thật bằng các kiểu dữ liệu khác. Common Lisp dùng một danh sách trống cho sai (false), và các giá trị khác cho đúng (true). Ngôn ngữ lập trình C thì dùng một kiểu số nguyên, trong đó các biểu thức quan hệ như i > j và biểu thức logic được kết nối bởi && và || được định nghĩa có giá trị 1 nếu đúng và 0 nếu sai, trong khi các phần kiểu tra của if, while, for, etc., xem các giá trị khác 0 là đúng. Thật vậy, một biến Boolean có thể được coi (và hiện thực) như là một giá trị số với một (bit) chữ số nhị phân mà chỉ có thể lưu được hai giá trị. Cách hiện thực của Boolean trong máy tính có thể được biểu diễn như là mộttừ (word) đầy đủ, thay vì một bit; điều này thường là do các máy tính truyền tải các khối thông tin. ^ Kernighan, Brian W; Ritchie, Dennis M (1978). The C Programming Language (ấn bản 1). Englewood Cliffs, NJ: Prentice Hall. tr. 41. ISBN 0-13-110163-3. ^ Plauger, PJ; Brodie, Jim (1992) [1989]. ANSI and ISO Standard C Programmer's reference. Microsoft Press. tr. 86–93. ISBN 1-55615-359-7.