gpt4 book ai didi

c++ - 二进制比较的结果减少到什么数据类型?

转载 作者:太空宇宙 更新时间:2023-11-04 14:35:34 28 4
gpt4 key购买 nike

相信没有 BOOL 这样的东西数据类型,取以下内容:

std::cout << (1>2); //<<-- prints 0

假设这个错误比较是 0,比较结果减少到什么数据类型?进行快速谷歌搜索不会产生任何结果。我最好的猜测是 unsigned char因为它是最小的最基本的数据类型,其中 0 真正表示为 0x00 .我不想假设任何事情,因为我不确定什么是巫术 std::cout对该值进行处理以使其成为可打印字符。

最佳答案

所有关系运算符( < , > , <= , >= )的结果类型都是 bool :

The operators < (less than), > (greater than), <= (less than or equal to), and >= (greater than or equal to) all yield false or true. The type of the result is bool.

bool 类型的对象具有值 truefalse .积分推广下,一个bool可以转换为 int其中 false变成 0true变成 1 :

A prvalue of type bool can be converted to a prvalue of type int, with false becoming zero and true becoming one.

bool是一种整数类型,标准称其使用“纯二进制计数系统”表示。描述此表示的脚注对于它如何映射到值 true 相当不清楚。和 false ,但您可以假设它们暗示 0 的值表示将全部0位:

A positional representation for integers that uses the binary digits 0 and 1, in which the values represented by successive bits are additive, begin with 1, and are multiplied by successive integral power of 2, except perhaps for the bit with the highest position. (Adapted from the American National Dictionary for Information Processing Systems.)

关于c++ - 二进制比较的结果减少到什么数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14388855/

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