语言的布尔类型
布尔是一位英国数学家,他很好地融合了逻辑运算和数学的关系。为了纪念他,用”布尔”表示逻辑的”真”和”假”。布尔类型最早是Algol 60提出。
- 早期面向过程的编程语言用整数表达布尔,一般为0为False, 非0为True,比如C/C++.
- 为了表达接逻辑的真假,一般用宏来指代。c99引入_Bool, 看到C代码中用Bool或bool类型一般是宏定义。C/C++用整数代表真假很简单直接,只要数值为0就是假,不为0就是真,不管是指针还是什么结构。
- 随着编程语言的抽象加强,编程语言将bool当做数据类型,尽可能不允许它和数值直接运算。Java/C#不能用整形数值作为逻辑表达式判断真假,为表达更自然。
- C++随内置bool类型,和C/Python一样,可以用整形变量作为逻辑判断。
- Ada/Ruby等编程语言不能用整形变量作为逻辑判断。
- Java的布尔关键字是boolean而非bool.
- Ruby比较不一样,0代表真,只有false和nil为假。
- Python大小为0的容器也是假,字符串””也为假。
优化的”布尔”
比特Bit是表达布尔类型的最小单位,尽管如此,计算机大部分用字节保存布尔类型,为了方便简单。一些编程语言为了优化存储空间,用比特保存布尔,比如C++的bitset.
微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。
我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。
欢迎关注。助您在编程路上越走越好!