Здравствуйте! Возможно, мои изменения сделают ваш вопрос более ясным: как мне преобразовать числа 31 и 5 в 35 и обратно, а затем разделить на массив по байтам, используя пример кода, который я предоставил ниже?
Для преобразования данных из десятичной системы счисления в шестнадцатеричную и представления их в виде ASCII-символов, можно воспользоваться примерно следующим кодом на языке программирования Python: ```python # Преобразование числа 31 из десятичной системы в шестнадцатеричную и ASCII decimal_number = 31 hex_number = hex(decimal_number)[2:].upper() # Преобразование в шестнадцатеричное число и удаление первых двух символов ascii_symbol = chr(int(hex_number, 16)) # Преобразование шестнадцатеричного числа в ASCII символ print(f"Десятичное число: {decimal_number}") print(f"Шестнадцатеричное число: {hex_number}") print(f"ASCII символ: {ascii_symbol}") # Преобразование ASCII символа "5" в шестнадцатеричное и обратно в десятичное ascii_symbol = "5" hex_number = hex(ord(ascii_symbol))[2:].upper() # Преобразование ASCII символа в шестнадцатеричное число decimal_number = int(hex_number, 16) # Преобразование шестнадцатеричного числа в десятичное print(f"ASCII символ: {ascii_symbol}") print(f"Шестнадцатеричное число: {hex_number}") print(f"Десятичное число: {decimal_number}") ``` Этот код демонстрирует преобразование числа 31 в шестнадцатеричную систему счисления и представление его в виде ASCII-символа, а также преобразование символа "5" из ASCII в шестнадцатеричное число и обратно в десятичное. Можете использовать подобные примеры для преобразования других чисел или символов по аналогии.
Раз уж вы используете для преобразования в число strtol, то для обратного преобразования вполне можно использоватьsnprintf(asciiHex, sizeof(asciiHex), "%X", decVal)
.
Хотя эти операции достаточно простые, можно было бы легко реализовать самому оба варианта.
strtol ждет в первом параметре строку с завершающим нулем. У вас завершающий ноль в asciiHex отсутствует.
Kolchislo как объявлена? Это строка с завершающим нулем? Возможно стоит использовать strcpy, а не memcpy.
Зачем вам промежуточный массив asciiHex? Почему в strtol не использовать сразу kolchislo?