内置在Python中的无符号类型

时间:2015-10-10 17:38:42

标签: python cpu-architecture

哪些设计问题导致Python不支持内置的无符号类型?

我知道在Python中try { $mytime = new DateTime($input); } catch (Exception $e) { // ERRORS HERE print_r(DateTime::getLastErrors()); } 是整数值的抽象,但为什么它不能表示抽象的固定字节大小整数?

2 个答案:

答案 0 :(得分:1)

在像C这样的非Python语言中,如果你想控制数字的确切范围和包装,那么无符号类型非常有用。

在Python中,正如Alex Hall在评论中提到的那样,整数具有无限的精确度。因此,有符号和无符号之间的区别实际上没有任何意义。

如果您希望优化代码的性能并且愿意放弃Python的灵活性和强大功能,则可以使用Cython并将特定变量注释为" unsigned int"。看看http://docs.cython.org/src/userguide/language_basics.html

答案 1 :(得分:0)

出于同样的原因,PHP或Java没有。来自here,关于Java:

  戈斯林:对我来说,作为一名语言设计师,我现在并不像以前那样真实地认为自己是什么,简单的"真的最终意义是我可以期待J.随机开发人员在他的头脑中保持规格。这个定义说,例如,Java不是 - 实际上很多这些语言都有很多极端情况,这些都是没有人真正理解的。测试任何C开发人员关于unsigned的问题,很快你就会发现几乎没有C开发人员真正理解无符号算法是什么,无符号算术是什么。这样的事情让C变得复杂。我认为Java的语言部分非常简单。你必须查找的库。

所以它非常简单。

如果您确实需要此功能,可以随时使用ctypes