unsigned short a; a=-0.5; count<<a<<endl; 会打印出什么?

例如:unsigned short a;

a=-0.5;
count<<a<<endl;
会打印出什么?

三国纷争
浏览 173回答 2
2回答

手掌心

打印出0,这个很容易理解的,-0.5是常量,常量默认都有类型的,比如 5默认的类型是int,-0.5默认为double,当将double类型的-0.5赋值给a的时候,显然有一个类型转换,这种转换不需要使用static_cast或者()强制进行,所以称为隐式转换。另外为什么为0呢?计算机中处理浮点数不会进行四舍五入,而是使用向偶数舍入、向0舍入 向下舍入 或者向上舍入, 一般是这四种舍入方式,而c++中的舍入方式,是有 float.h中的 DBL_ROUNDS和FLT_ROUNDS决定舍入方式的。

小唯快跑啊

截断取整……结果为0……
打开App,查看更多内容
随时随地看视频慕课网APP