在Java虚拟机规范说有布尔有限的支持原始类型.
没有专门针对布尔值操作的Java虚拟机指令.相反,Java编程语言中对布尔值进行操作的表达式被编译为使用Java虚拟机int数据类型的值.
以上暗示(虽然我可能误解了它)在操作布尔值时使用int数据类型,但这是一个32位内存构造.假设布尔值仅代表1位信息:
我正在用C#编写一个工具来查找重复的图像.目前我创建了文件的MD5校验和并进行比较.
不幸的是我的图像可以
什么是解决这个问题的最佳方法?
我只是学习C#并深入研究数据类型.
为什么bool
数据类型不是1位?
它似乎只能保存两个值中的一个(真或假),那么只占用1位空间来表示该值吗?
是因为这篇文章中提到的值的最小'可寻址'大小是一个字节(8位)?
我的总体目标是在逻辑上设想C#中每种数据类型的不同大小,所以我试图创建一个包含所有数据类型及其分配位大小的列表,这让我感动.
我在http://referencesource.microsoft.com/#mscorlib/system/boolean.cs上找到了布尔源代码:
public struct Boolean
{
...
private bool m_value;
...
}
Run Code Online (Sandbox Code Playgroud)
为什么它不抛出StackOverflowException?