1) У меня есть небольшая проблема при работе с шестнадцатеричными значениями. Почему sendValue(hex(12289))
приводит к ошибке (прерывание скрипта), а sendValue(0x3001)
работает?Работа с шестнадцатеричными значениями не работает с шестнадцатеричной функцией
def sendValue(value):
for i in range(16):
if (value & 0x8000):
print "1" # later this bit will be sent to a LC
else:
print "0" # later this bit will be sent to a LC
value <<= 1 # corrected this
def main():
sendValue(0x3001)
sendValue(hex(12289))
if __name__ == '__main__':
main()
2) Я ожидал, что выходной сигнал
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
Но я просто получить 0
** Что ** ошибка? –
Это потому, что 'hex (12289)' возвращает 'string', и вы сравниваете его с' number' в 'if'. Поэтому он выдает ошибку. –
Вы не используете 'i' нигде в цикле. Вы делаете 'значение & 0x8000' 16 раз. –