Как получить байты целого числа в C?

вопрос в том, как получить байтовые числа из целого числа без «0»? Я имею в виду, когда хочу:

printf("%x", 67305985);

вывод: 04030201. Есть ли возможность получить 4321 (без «0») на выходе? Я попытался преобразовать целое число в массив беззнаковых символов, но возникла та же проблема.

Спасибо за ваше время.

Какой результат вы хотите увидеть со значением 0x04300021? 4321?   —  person CzadowyHuopak    schedule 24.05.2020

Невозможно получить начальные 0 с описателем формата %x. Вам нужно отредактировать свой вопрос и не указывать на неправду.   —  person CzadowyHuopak    schedule 25.05.2020

См. также:  Ошибка npm install bcrypt с ошибкой: не удается найти модуль 'nan'
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. CzadowyHuopak

    Один из способов сделать это — использовать комбинацию битовых сдвигов и битовой маскировки.

    Если вы & 32-битное целое число против 32-битного целого 0x000000FFu, результатом будет целое число, в котором установлены только те биты, которые были уже установлены A: и B: расположены в последних 8 битах числа. Чтобы выбрать другие части целого числа, вы можете сдвинуть бит на значение, кратное 8. I.E. (x >> 8) &0x000000FFuto select the second byte from the right, (x >> 16) & 0x000000FFu для выбора третьего.

    Затем вы можете распечатать каждое из них как обычные целые числа без знака в десятичном формате.

    Я не уверен, как производительность этого метода будет сравниваться с приведением беззнакового целочисленного указателя к беззнаковому указателю char и делать это таким образом.

    Кроме того, если вы сделаете это, я настоятельно рекомендую определить 0x000000FFu в макросе, чтобы вам не приходилось копировать и вставлять его снова и снова. (Это также может облегчить чтение кода, если вы дадите макросу описательное имя) person CzadowyHuopak; 24.05.2020

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: