C ++与unsigned char和char之间的差异与乘法

时间:2016-12-04 18:06:51

标签: c++ char integer multiplication

为什么char在乘以整数字面时溢出而unsigned char没有,并且它会转换为intunsigned int

#include <memory>
#include <iostream>

using namespace std;

int main(void)
{
    char MAX1=200;
    unsigned char MAX2=200;

    cout << MAX1*3 << endl;
    cout << MAX2*3 << endl;

    return 0;
}

以上代码输出:

  

-168

     

600

1 个答案:

答案 0 :(得分:0)

哦,是的!我现在清楚地看到了。两者都投放到BooleanTemplate predicate = Expressions .booleanTemplate("FUNCTION('ftsMatch', {0},'pg_catalog.french', film.titre) = true ", _titre); Page<Film> page = filmRepository.findAll(predicate, _pageable); ,只是int溢出,然后投放到MAX1,然后成倍增加。感谢@BaummitAugen