Я печатаю шестнадцатеричные числа в последовательности, чтобы сделать код операции для ассемблера в C. У меня все идеально, за исключением случаев, когда смещение отрицательное. Теперь у меня есть только 3 пробела для перемещения, и когда говорят -11 (база 10), я конвертирую это и получаю fffffff5
в качестве своего ответа. Я хочу ограничить это так, чтобы отображалось только ff5
. Есть ли способ сделать это? При печати положительных чисел из-за ограничений число никогда не будет больше, чем 7FF
, поэтому я не вижу никаких проблем. Но с отрицательными номерами он всегда будет печатать 8 шестнадцатеричных чисел, и я хочу всего лишь 3 правых большинства цифр, так или иначе?В C есть способ установить максимальную ширину для целочисленного вывода?
ответ
Вы можете просто усечение перед печатью:
unsigned int x = -11;
printf("%03x\n", x & 0xfff);
Пример вывода:
$ ./example
ff5
Эй, спасибо. Я очень ценю, что он исправил это отлично. Есть ли у вас веб-страница? Я искал способ усечения целых чисел и не мог найти его нигде! – bobHarding
Нет, я только что написал. –
Независимо от благодарности, в любом случае, действительно оцените его. – bobHarding
Ограничение значений в диапазоне -0x800 к 0x7FF работает как предложено @Carl Norum с x & 0xfff
.
В теории теории, printf()
также необходимо управлять языком, который буквально может распечатать намного больше, но практически не вызывает беспокойства. Конечно, код мог бы использовать.
char buf[4];
buf[0] = 0;
snprintf(buf, sizeof buf, "%03x", x & 0xFFF);
fputs(buf, stdout);
Но это немного belt and suspenders.
Не будет ли печатать неправильные три байта? –
@ Carl Norum Если вы имеете в виду, что надоедливый дополнительный '' F'' - исправлен. – chux
Yup - все. Я думаю, что мне не хватало того, что происходило вначале. Теперь я понимаю. –
- 1. Установить максимальную ширину Gtk :: TextView
- 2. Как установить максимальную ширину для таблицы
- 3. как установить максимальную ширину для splitview?
- 4. Как установить максимальную ширину ToolTip
- 5. Как установить максимальную ширину для макета
- 6. Как установить максимальную ширину для ячейки таблицы?
- 7. Как установить максимальную ширину dijit.ToolTip?
- 8. Как установить максимальную ширину для BottomSheetDialogFragment
- 9. Как установить максимальную ширину для QTreeView resizeColumnToContents?
- 10. Как установить максимальную ширину представления в IOS?
- 11. Как установить максимальную выходную ширину в numpy?
- 12. Невозможно установить максимальную ширину в строку
- 13. Есть ли способ указать максимальную высоту или ширину изображения?
- 14. Установите максимальную ширину для RowLayout
- 15. Установить минимальную и максимальную ширину прямоугольника
- 16. Qt: Как установить максимальную ширину QVBoxlayout
- 17. Java, Swing: как установить максимальную ширину JTextField?
- 18. Как установить максимальную ширину и максимальную высоту изображения перед загрузкой
- 19. Есть ли способ установить максимальную ширину столбца при отображении результатов запроса в psql?
- 20. Задать максимальную ширину, чтобы тягот
- 21. установить максимальную ширину отображения для столбца в WPF datagrid
- 22. Получить максимальную ширину uinavigationItem.titleView?
- 23. Как установить максимальную ширину LinearLayout до xml?
- 24. Установить максимальную ширину с помощью Jquery
- 25. Как установить максимальную ширину для конкретного столбца в jQuery DataTables
- 26. Установите максимальную ширину и максимальную высоту для ячеек таблицы
- 27. IPython: как установить ширину вывода
- 28. Получить максимальную ширину UIFont
- 29. Как установить максимальную ширину всплывающего окна в Oracle ADF
- 30. Как установить максимальную ширину и высоту для pixmaps?
Но вы знаете, что 0xfffffff5 и 0xff5 - разные значения? – deviantfan
@deviantfan, если оба они представляют '-11' в 32-битных и 12-разрядных представлениях двух дополнений. –
@CarlNorum Да, и поэтому в коде C с 32-битными варами потребуется специальное лечение (при чтении его снова или что-то еще). Вот почему я пишу это, так или иначе я сомневаюсь, что OP это осознает, если единственная проблема - это пробелы. – deviantfan