在阅读MSDN docs about bittable types时,我看到布尔值不是位表的(在托管和非托管内存之间转换值时会发生一些转换)。
给出了以下描述:
转换为1、2或4字节值,且true为1或-1。
考虑到布尔值不可为空,这使它们成为二进制值。在我看来,这意味着它们需要1“位”的存储空间。为什么我们会有一个4字节(32位)大小的布尔值?
第二,如果true
可以为1或-1,我认为这意味着false
可以为0,什么也没有?为什么我们要像这样使用布尔值而不是使用单个二进制值(位)来存储布尔值?