Найти - Пользователи
Полная версия: Привести к читаемому виду bytes to int
Начало » Python для новичков » Привести к читаемому виду bytes to int
1 2
Svet
Всем привет.
Опрашиваю прибор, документации нет.
Знаю что вот из этих байт
 [0x3B, 0xF1, 0x30, 0x39]
должно получиться два числа 59,941 и 48,223.
Методом тыка, вроде как 0x3B = 59, а 0x30 = 48 - Это наверное мы получаем первую часть числа… А что сделать, чтобы получить вторую часть не пойму…

Помогите плизззз!
AD0DE412
https://pythonworld.ru/osnovy/vstroennye-funkcii.html
https://pythonworld.ru/tipy-dannyx-v-python/spiski-list-funkcii-i-metody-spiskov.html
 def main(the_list):
    return [int(i) for i in the_list]
if __name__ == '__main__':
    что_то = [0x3B, 0xF1, 0x30, 0x39]
    итого = main(что_то)
    print(итого)
 [59, 241, 48, 57]
зы так то первые 100 страниц любой книги про питон
py.user.next
Svet
А что сделать, чтобы получить вторую часть не пойму…
Видимо, неверные ожидания у тебя. Либо ждёшь не то, либо принял не то.
AD0DE412
Svet
должно получиться два числа 59,941 и 48,223.
блин тока щаз дошло че нужно часть после запятой
в начале подумалась то это типа перечисление 4х int … а тута из 4х int нужно получить 2 float …

тут не хватает информации так что ТС дело за тобой … че куда кто каго

зы предположу че четные цифры нужно умножить на такое число 941 / 241 с округлением к бижайшему целому числу или что то подобное
xam1816
Svet
Опрашиваю прибор, документации нет.
Знаю что вот из этих байт

что за прибор?какой-то цифровой датчик?

по 2 байта передают цифровые датчики температуры,эти 2 байта нужно перевести в двоичный код,а из них уже получать число,где скорее всего определенные биты будут указывать на целую часть,а определенные на знаки после запятой(может даже в какой-то дискретности)
xam1816
посмотрите,может что-то наподобие этогоYour text to link here…
xam1816
AD0DE412
59,(241*4)
48,(57*4)

примерно похоже выходит,надо еще каких нибудь данных чтобы проверить теорию

AD0DE412
мне мыслилось намного иначе
как то так
59, round(241*(941.0 / 241.0))
ps хм с округлением все не так просто в питоне … и по разному
Vladimirv
AD0DE412 расслабитесь, ТС уже получил ответ на вопрос. Тут скажу, что вторая часть hex это, то что после запятой, и тут не нужно никакое округление или деление на непонятные числа.
AD0DE412
ну это не чуствую ни кокого напрежения но за заботу спасибо …
ваше решение …
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB