2017-01-26 9 views
0

Вот мой код:Python Split шестнадцатеричный символ - Bitshift

ROSF = 30e3; 
MCLK = 16e6; 
SFC = (ROSF/(MCLK/4))*(2**27); 
SFC = int(SFC); 
SFC = hex(SFC); 
print SFC; 

я 0xf5c28, но я хочу получить 0x0f5c28.

После этого я хотел бы иметь 3 переменные с 2 символами внутри. Я хотел бы разделить мой шестнадцатеричное число в 3-х штук, чтобы получить следующие переменные:

set1 = 0x0f 
set2 = 0x5c 
set3 = 0x28 
+0

«0x% 06s»% hex (SFC) [2:] 'это способ, которым вы можете это сделать, я думаю ... –

+1

Добро пожаловать в Stack Overflow! Рекомендую вам [принять тур] (http: // stackoverflow .com/tour). –

+0

@JoranBeasley: Я думаю, что OP ищет более общий способ, который добавляет начальный ноль, если число цифр нечетное. –

ответ

0

Я решил это так:

ROSF = 30e3 
MCLK = 16e6 
SFC = int((ROSF/(MCLK/4))*(2**27)) 
register1 = ((SFC >> 16) & 0x00FF) 
register2 = ((SFC >> 8) & 0x00FF) 
register3 = (SFC & 0x00FF) 
print(hex(register1)) 
print(hex(register2)) 
print(hex(register3)) 

Извините за мой плохой вопрос. Но этого я и хотел.