Я не уверен, что это pythonic, но, похоже, работает
def alternate_list(a):
return a[::2], a[1::2]
key_list,value_list = alternate_list(a)
b = dict(zip(key_list,value_list))
Этот код
int a = 5;
printf("%x\n", a);
печатает
5
Этот код
int a = 5;
printf("0x%x\n", a);
печатает
0x5
Этот код
int a = 89778116;
printf("%x\n", a);
печатает
559e7c4
Если вы вводите заглавную букву x в формате, то заглавным становится шестнадцатеричное значение:
int a = 89778116;
printf("%X\n", a);
печатается
559E7C4
Если вы хотите напечатать указатели, вы используете спецификатор формата p:
char* str = "foo";
printf("0x%p\n", str);
печатает
0x01275744
Следующий код принимает целое число и делает из него строку в шестнадцатеричном формате:
int num = 32424;
char hex[5];
sprintf(hex, "%x", num);
puts(hex);
дает
7ea8
Я сделал библиотеку, чтобы сделать шестнадцатеричное / десятичное преобразование без использования stdio.h
. Очень прост в использовании:
char* dechex (int dec);
. Он будет использовать calloc()
для возврата указателя на шестнадцатеричную строку, таким образом, количество используемой памяти оптимизируется, поэтому не забывайте использовать free()
Здесь ссылка на github: https://github.com/kevmuret/libhex/
Обычно с printf
(или одним из его кузенов) с использованием Спецификатор формата% x
.