我正在尝试在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?
答案 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作为字符串。