2014-02-27 3 views
0

Я пытаюсь реализовать код C в 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

В синтаксисе питон печати отличается проверка этот ответ http://stackoverflow.com/questions/14041791/print-variable-and-a-string-in-python – MONTYHS

ответ

4

это на самом деле дает:

OverflowError: unsigned byte integer is greater than maximum 

и это потому, что формат %c ожидает один байт, который является 0x11111111 (255) максимум. А 291 - 0b100100011, который составляет 9 бит.

В c Я не уверен, почему он показывает 0, но это определенно способ сказать вам, что есть ошибка, переполнение байта в формате.

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

Здесь ch является переменной, где присваивается значение 291. Используйте% s для строки.

Смежные вопросы