算术运算中的奇怪类型推广

时间:2015-06-16 13:57:26

标签: python cython

为什么这个cython功能:

cimport numpy as np
cimport cython

def foo(np.uint32_t b):
    cdef np.int32_t a = 0


    if a-b <0: return 0
    else: return 1
对于foo(1),

返回1? 我在C中编译了类似的代码,并没有观察到两个操作数(a,b)都被提升为unsigned int。

1 个答案:

答案 0 :(得分:1)

textview.editable = false // for swift language textview.selectable = false // // override textview delegates func textViewShouldBeginEditing(textView: UITextView) -> Bool { return false } 是正确的结果;应该将带符号的操作数转换为相应的无符号类型。

  

6.3.1.8通常的算术转换

     

[...]
   - 否则,如果具有无符号整数类型的操作数的等级大于或等于   等于另一个操作数的类型的等级,然后是操作数   有符号整数类型转换为带有unsigned的操作数的类型   整数类型。