python语言中,表达式int(-4.3)的值是?

如题所述

结果是 -4

对正数是向下取整,对负数是向上取整。

学python的一个缺点就是对数据类型的基础理解比较少,

你可以用二进制来理解下,举一个有符号的二进制为例子:

对于无符号的 0b000~0b111 来说分别有

0b000 = 0;

0b001 = 1;

0b010 = 2;

0b011 = 3;

0b100 = 4;

0b101 = 5;

0b110 = 6;

0b111 = 7;

比如 uint 就是 int 的无符号形式。

当相同数据为有符号形式时变为:

0b000 = 0;

0b001 = 1;

0b010 = 2;

0b011 = 3;

0b100 = -4;

0b101 = -3;

0b110 = -2;

0b111 = -1;

(参考原码、反码、补码)

所以根据这个规则,对float,double等数字是同理,在floor时将有符号位进行省略,如以下位运算(>>):

0b000 >> 1 = 0b000

0b001 >> 1 = 0b000

有 0->0 和 1 -> 0

0b010 >> 1 = 0b001

0b011 >> 1 = 0b001

有 2-> 1 和 3 -> 1

按照这个丢失精度的方法计算负数呢?

0b111 >> 1 = 0b111

0b110 >> 1 = 0b111

0b101 >> 1 = 0b110

0b100 >> 1 = 0b110

可知:

-1 -> -1 与 -2 -> -1

-3 -> -2 与 -4 -> -2

所以对负数的 floor 会向上取整,因为丢失精度的方法是直接根据小数点截断的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-06-01

python中的int函数采用和C语言一样的取整模式,小数直接截断,或者说是向零取整

不管正负数,都只保留整数部分

相似回答