C&中人物的比较蟒蛇

时间:2014-02-27 11:18:31

标签: python

我正在尝试在python中实现C代码:

int main()
{
  char ch=291;
  printf("%d %c",ch,ch);
  return 0;
}

在python中:

ch=291
print "%d %c" % (ch,ch)

但它给出了错误......

在C中,255之后的字符值再次返回0,这种概念是不适用于python?

2 个答案:

答案 0 :(得分:4)

它实际上是在给予:

OverflowError: unsigned byte integer is greater than maximum

这是因为%c格式需要一个字节,最大为0x11111111(255)。 291是0b100100011,即9位。

c中我不确定为什么会显示0,但这绝对是一种告诉你错误的方法,它会溢出格式中的字节。

答案 1 :(得分:0)

>>> ch=291   
>>> print "%d %s" % (ch,ch)
    291 291

这里ch是变量,其中赋值为291值。使用%s作为字符串。