首页 > 编程知识 正文

整型常量(【c 】7.无符号整型变量比较大小时用减法越界的bug问题)

时间:2023-05-03 20:42:41 阅读:122189 作者:551

无符号整数变量大时通过减法越界的错误的无问题符号(unsigned )和有符号)这两种(floatdouble始终带符号),除char以外的数据如果非char数据类型需要声明无符号类型,则必须在类型前加unsigned。

两个无符号整数变量,例如std:uint64_t x1、x2; 比较尺寸时,请使用if(x1x2)方式,不要使用if(x1x2 )。 因为在无符号整形变量中,两者的减法不会为负。

仅直接减去符号变量,比较两者的差。

如果使用无符号整数变量,请限定条件if(x1x2),然后使用减法增量=x1-x2。

std:uint64_t delta; if(x1x2)增量=x1-x2; (else )三角洲=x2-x1; //三角洲=x1x2? (x1-x2 ) : ) x1-x2 ); //直接一句话,代替上面的if-elseSTD33603360max(a,b ),可以比较两者哪个更大,并返回更大的值。 STD:3360min ) a,b )比较哪个较小,并返回较小的值。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。