Преобразование Python от двоичной строки до шестнадцатеричного

Вы хотите что-то подобное?

Sub Test1()

        Dim lRow As Long, r As Long
        lRow = 1000 'last row in your data
        Dim ws As Worksheet
        Set ws = Worksheets("List with your data")

        For i = 2 To lRow
            If ws.Range("F" & i) > 100 Then
                If ws.Range("C" & i).Value = "John" Or ws.Range("C" & i).Value = "Tom" Then
                    Worksheets("Another sheet sheet").Range("A" & r) = Range("C" & i).Value ' r - Row, where we want to enter uor text
                    r = r + 1 'if you want to put next name on the next row
                End If
            End If
        Next

    End Sub
49
задан T Zengerink 13 April 2013 в 22:06
поделиться

6 ответов

Этот обзор может быть полезен для кого-то: мусорное ведро, декабрь, шестнадцатеричное число в python для преобразования между мусорным ведром, декабрь, шестнадцатеричное число в Python.

я сделал бы:

dec_str = format(int('0000010010001101', 2),'x')
dec_str.rjust(4,'0')

Результат: '048d'

1
ответ дан 7 November 2019 в 11:36
поделиться

Преобразование двоичных в гекс без игнорирования ведущих нулей:

Вы можете использовать формат () встроенной функции, такой как это:

"{0:0>4X}".format(int("0000010010001101", 2))
6
ответ дан 7 November 2019 в 11:36
поделиться
>>> import string
>>> s="0000 0100 1000 1101"
>>> ''.join([ "%x"%string.atoi(bin,2) for bin in s.split() ]  )
'048d'
>>>

ИЛИ

>>> s="0000 0100 1000 1101"
>>> hex(string.atoi(s.replace(" ",""),2))
'0x48d'
-3
ответ дан 7 November 2019 в 11:36
поделиться

Это невозможно, и оно никогда не будет, если только пользователь явно устанавливает конфигурации политики.

-121--3046024-

INT Дана база 2, а затем hex :

>>> int('010110', 2)
22
>>> hex(int('010110', 2))
'0x16'
>>> 

>>> hex(int('0000010010001101', 2))
'0x48d'

Док int :

 int (x [, база  ]) -> Целое число

По возможности преобразовать строку или номер в целое число.  Плавающее
 

Точка Аргумент будет усечен к нулю (это не включает строку Представление номера плавающей точки!) При преобразовании строки, использовать дополнительная база. Это ошибка для подачи основания при преобразовании не строка. Если база равно нулю, правильная база угадается на основе Строковый контент. Если аргумент за пределами целочисленного диапазона A Длинный объект будет возвращен вместо этого.

Док HEX :

 HEX (номер) -> строка

Вернуть шестнадцатеричное представление целого числа или длительного
 

целое число.

59
ответ дан 7 November 2019 в 11:36
поделиться
bstr = '0000 0100 1000 1101'.replace(' ', '')
hstr = '%0*X' % ((len(bstr) + 3) // 4, int(bstr, 2))
26
ответ дан 7 November 2019 в 11:36
поделиться

Предположим, что они сгруппированы на 4 и разделены пробелами. Это сохраняет лидирующие 0.

b = '0000 0100 1000 1101'
h = ''.join(hex(int(a, 2))[2:] for a in b.split())
-1
ответ дан 7 November 2019 в 11:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: