gpt4 book ai didi

c# - c#中 boolean 值的二进制表示是什么

转载 作者:可可西里 更新时间:2023-11-01 08:02:30 25 4
gpt4 key购买 nike

我知道一个 boolean 值是 1 个字节(8 位长)但我想知道它的二进制表示是什么。例如十进制 => 二进制4 => 100 (0000 0100)8 => 1000 (0000 1000) boolean 值 => ???

最佳答案

bool 是 C# 中的内置基本类型。任何底层表示都是实现细节。

C# 4.0 语言规范在第 4.1.8 节中指出:

The bool type represents boolean logical quantities. The possible values of type bool are true and false.

No standard conversions exist between bool and other types. In particular, the bool type is distinct and separate from the integral types, and a bool value cannot be used in place of an integral value, and vice versa.

In the C and C++ languages, a zero integral or floating-point value, or a null pointer can be converted to the boolean value false, and a non-zero integral or floating-point value, or a non-null pointer can be converted to the boolean value true. In C#, such conversions are accomplished by explicitly comparing an integral or floating-point value to zero, or by explicitly comparing an object reference to null.

如果我们更深入一点,看看如何在通用中间语言 (CIL) 中指定相应的类型,我们将看到 CLI boolean 类型在内存中占用 1 个字节。 公共(public)语言基础设施 (CLI) 规范在第 III 部分第 1.1.2 节中说:

A CLI Boolean type occupies 1 byte in memory. A bit pattern of all zeroes denotes a value of false. A bit pattern with any one or more bits set (analogous to a non-zero integer) denotes a value of true.

但是,这是在另一个级别指定的,在 C# 中您不必关心;即使 CLI 规范的 future 版本可能会更改 boolean 类型的表示,或者如果 C# 编译器决定将 C# 中的 bool 映射到不同的东西,您的 C# 代码仍将具有相同的语义.

关于c# - c#中 boolean 值的二进制表示是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3335841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com