@Blunker

Как разбить четырехзначное число в шестнадцатиричной СС на 2 двузначных числа этой же СС?

Имеется такой код
scanf("%x", &value);
где value четырехзначное число в шестнадцатеричной СС.

И нужно вывести это значение как 2 двузначных числа в этой же СС.

Пробовал такое
printf("%02X%02X", ((value & 0x7F80) >> 7), value & 0x7F);


Не дало желаемого результата:(
  • Вопрос задан
  • 232 просмотра
Пригласить эксперта
Ответы на вопрос 1
love_energy
@love_energy
Я бы сделал так.
#include <stdint.h>
#include <stdio.h>

typedef union uSplit{
	uint16_t value;
	uint8_t  parts[2];
} tSplit;

void main(void)
{
	tSplit Split; 
	
	Split.value = 0xABCD;

	printf("low parth = 0x%x \nHigh parth = 0x%x\n", Split.parts[0], Split.parts[1]);
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы