Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >二进制比较的结果简化为什么数据类型?

二进制比较的结果简化为什么数据类型?
EN

Stack Overflow用户
提问于 2013-01-17 21:57:22
回答 4查看 129关注 0票数 0

确认没有BOOL数据类型这样的东西,请执行以下操作:

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

假设这个错误的比较是0,那么比较的结果是什么数据类型呢?在谷歌上快速搜索不会得到任何结果。我最好的猜测是它是一个unsigned char,因为它是最小的、最基本的数据类型,其中0真正表示为0x00。我不想做任何假设,因为我不确定伏都教std::cout对值做了什么才能使它成为可打印的字符。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-01-17 21:59:08

所有关系运算符(<><=>=)的结果类型均为bool

对于运算符< (小于)、> (大于)、<= (小于或等于)和>= (大于或等于),都会生成falsetrue。结果的类型是bool

bool类型的对象的值为truefalse.Under integral promotion,可以将bool转换为int,其中false变为0true变为1

bool类型的prvalue可以转换为int类型的prvalue,其中false变为0,true变为1。

bool是一个整数类型,标准说它是通过使用“纯二进制计数系统”来表示的。描述这种表示的脚注并不清楚它如何映射到值truefalse,但您可以假设它们是在暗示0的值表示将全部是0位:

整数的位置表示法,它使用二进制位0和1,其中由连续位表示的值是相加的,从1开始,然后乘以2的连续整数幂,可能位置最高的位除外。(改编自美国国家信息处理系统词典。)

票数 10
EN

Stack Overflow用户

发布于 2013-01-17 21:58:58

没有标准的BOOL类型,但bool是一个标准的基础类型:

类型为bool

[C++11: 3.9.1/6]:值为truefalse。。。

至于您的关系比较的结果:

[C++11: 5.9/1]:关系运算符组从左到右。。。操作数应为算术、枚举或指针类型,或类型为std::nullptr_t。运算符< (小于)、> (大于)、<= (小于或等于)和>= (大于或等于)都会生成falsetrue结果的类型为 bool**.**

注意,这在C中是不同的,在C中没有内置类型bool,并且关系比较的结果是int类型

[C99: 6.5/8]:如果指定的关系为真,则< (小于)、> (大于)、<= (小于或等于)和>= (大于等于)运算符中的每个运算符都将生成1,如果关系为假,则将生成0结果的类型为 int**.**

票数 6
EN

Stack Overflow用户

发布于 2013-01-17 21:59:38

C++标准,第5.9节关系运算符,第1段说:

结果类型为bool

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14388855

复制
相关文章
AOP的具体实践-简化结果返回的处理
  以前学习Spring的时候着重学习过AOP概念,但是一直也没有用上,唯一碰到过的就是Spring内置的事务管理。现在碰到过一些结果后面的操作适合用到,所以这里就拿出来用一下,并且复习一下落下的知识。
李家酒馆酒保
2018/08/22
8850
AOP的具体实践-简化结果返回的处理
string.length()与-1比较为什么会出现匪夷所思的结果
今天调试程序发现了个匪夷所思的事情,-1与string.length()比较永远是-1大,看下面代码 #include<iostream> #include<string> using namespace std; int main() { string str; str="123"; int num=-1; //int len=str.length(); if(num<str.length()) { cout<<"-1<str.length(
用户1215536
2018/02/05
7690
如何简化美化LEfSe分析结果中的Cladogram图
关于LEfSe分析,相信大家早已耳熟能详。网上也有很多指导如何做LEfSe分析流程的文章。可是在实际应用中,仍然会遇到一些问题。LEfSe以出图美观的优势吸引大家用它绘图,然而为什么同样的流程,我们做出来的图总是不如别人发在文章里的漂亮?比如,别人发表的图是这样的:
生信宝典
2019/10/14
4.4K0
Java 日期类型比较没有返回正确的结果
最近在数据库处理的时候发现日期对比的时候没有返回正确的结果。 但是保存的时间实际上是相同的。 代码如下: if (!mlsPhoto.getDateUpdate().equals(photo.getDateUpdate())) { } 因为这里使用了 equals 方法。 问题解决 经过 Debug 后,这 2 个日期的纳秒数是不同的,查看下对象如下。 我们会发现其中一个对象有纳秒,一个对象没有。 但是 fastTime 是相同的。 如果使用 equals 那么这个方法比较的是毫秒,所以是不相等的。
HoneyMoose
2021/12/21
3.5K0
Python 接口测试之结果集比较封装
  接口测试执行完后,我们需要进行断言,断言的主要目的是用代码来判断实际结果和预期结果是否一致,这跟手工测试中用肉眼去判断是一样的思路。既然这样,我们可以将已知的预期结果和未知的实际结果简单的封装成一个类,然后写一个比较的函数来判断,最后得到结果。
全栈测试开发日记
2023/02/18
8840
Python 接口测试之结果集比较封装
各种软件/包构建G矩阵结果比较
飞哥注:这篇是我同事苏惠写的,内容更全面,代码更完整,我的上一篇plink计算的PCA为什么和GCTA计算的不一样?是一个引子,而且这一篇给出了plink --pca 样本数时,
邓飞
2021/11/29
8600
技术分享 | 使用 SQL 语句来简化 show engine innodb status 的结果解读
熟悉 MySQL 的同学,一定对如何实时监控InnoDB表内部计数器非常了解。 就一条命令:show engine innodb status ;这条命令非常简单,但是其结果的可读性却比较差! 那如何能简化输出,并且增加其结果的可读性呢?
爱可生开源社区
2022/12/07
9620
integer类型比较大小_pow的值的数据类型
MySQL支持SQL标准整数类型 INTEGER(或 INT)和SMALLINT。作为标准的扩展,MySQL还支持整数类型 TINYINT、MEDIUMINT 和 BIGINT。下表显示了每个整数类型所需的存储和范围。.
全栈程序员站长
2022/10/29
7410
不同转录组流程结果到底该如何比较
流程使用的是hg38参考基因组 , 简单搜索目标基因:https://www.ncbi.nlm.nih.gov/gene/7157
生信技能树
2019/09/25
1K0
不同转录组流程结果到底该如何比较
rrvgo--基于语义相似度简化GO富集结果冗余
Gene Ontology分为分子功能,生物过程和细胞组成三个部分。蛋白质或者基因可以通过ID对应或者序列注释的方法找到与之对应的GO号,而GO号可对应到Term,即功能类别或者细胞定位。这也是GO富集的一个基础。
作图丫
2022/03/28
2.4K0
rrvgo--基于语义相似度简化GO富集结果冗余
为什么之前的MapReduce系统比较慢
本文就两个问题进行讨论:1. 相比于Shark,为什么像Hive之类的传统MapReduce框架比较慢? 2. 对于细粒度的任务模型(fine-grained task model),究竟有些什么优势
Albert陈凯
2018/04/04
1.1K0
为什么之前的MapReduce系统比较慢
C\C#\Java\Python 基本数据类型比较
C语言基本数据类型 C#基本数据类型 Ps:布尔类型即逻辑类型,表示逻辑上的真或假。C语言中0为假,非0均为真。 Java基本数据类型 Python基本数据类型 类型 说明 int 带符号整数,不限大
Steve Wang
2018/02/05
1.5K0
C\C#\Java\Python 基本数据类型比较
比较两幅图像的相似度的各种相似度量结果对比
对于人眼来说,很容易看出两个给定图像的质量有多相似。例如下图将各种空间噪声添加到图片中,我们很容易将它们与原始图像进行比较,并指出其中的扰动和不规则性。但是在机器学习中我们需要数学表达式来量化这种差异。
deephub
2021/09/15
4.3K0
比较两幅图像的相似度的各种相似度量结果对比
为什么PERMANOVA和ANOSIM结果不同?
https://www.researchgate.net/post/Why_do_I_obtain_different_results_using_PERMANOVA_or_ANOSIM
Listenlii-生物信息知识分享
2021/07/30
3.3K0
为什么都说java比较容易入门?
说java比较容易入门的人,应该都是正常的人,因为相比之下,java有着不可比拟的优势,对于编程新手来说这个优势,可以让他们更快的用java语言写出他们自己的东西,而且bug不多,并且不容易出现致命的问题; 那么java到底有什么优势呢?说到优势,我们就需要再看看与之相对比的语言看看他的优势到底是什么? 先来说说当下的主流开发语言: C,C++,JAVA 那么以上这三种都是高级语言了,但是相比之下c是一个高级语言中的低级语言,他就好像183的身高站在了NBA的队员里,单拿出来是挺高但是在这里面就是低的了;
程序员互动联盟
2018/03/14
7560
为什么都说java比较容易入门?
为什么需要定义数据类型???
变量是内存中的一个存储区域。而数据类型的定义决定了这块存储区域的大小。【变量与数据类型的关系】
Noneplus
2019/09/24
7270
通过禁止比较让 Go 二进制文件变小
大家常规的认知是,Go 程序中声明的类型越多,生成的二进制文件就越大。这个符合直觉,毕竟如果你写的代码不去操作定义的类型,那么定义一堆类型就没有意义了。然而,链接器的部分工作就是检测没有被程序引用的函数(比如说它们是一个库的一部分,其中只有一个子集的功能被使用),然后把它们从最后的编译产出中删除。常言道,“类型越多,二进制文件越大”,对于多数 Go 程序还是正确的。
用户8639654
2021/09/18
8470
点击加载更多

相似问题

二进制结果比较

13

为什么简化会产生不同的结果?

10

简化日期比较

52

简化链式比较

237

如何简化比较?

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文