2015-12-21 5 views
-4

В C можно ли принудительно заставить unsigned char печатать как шестнадцатеричный, а не в% x, но в маленьком квадратном поле, которое отображает четыре шестнадцатеричных числа, но только занимает один символ, например ?Печать значений символов в шестнадцатеричном формате внутри квадрата с 1 символом в C?

+2

«в квадрате квадрата, который отображает четыре шестнадцатеричных номера, но только занимает один символ» ... что это значит? О какой «квадратной коробке» вы имеете в виду? И нет, пример не помогает - как это связано с «четырьмя шестнадцатеричными числами»? – kaylum

+0

Ну, «маленькая коробка» в примере, который я дал, имеет четыре шестнадцатеричных номера, «8F» в верхней строке и «69» в нижней строке. Каждый из них является байтом, поэтому в нем есть два байта. Например, если вы выполняете 'unsigned char c = 0x1e; printf («% c», c); «результатом будет такой ящик с« 00 »в верхней строке и« 1E »в нижней строке. Я хочу заставить printf делать это с любым беззнаковым символом, который я бросаю на него. – gmoss

+0

@kaylum некоторые устройства вывода, когда сталкиваются с символом, для которого нет глифа в текущем шрифте, создадут глиф, состоящий из квадратного поля, содержащего шестнадцатеричные цифры кода символа –

ответ

2

Нет, это невозможно.

Это не связано с C, а с шрифтом, который использует ваш терминал. C выводит символы как байты; ваш терминал отвечает за выбор способа отображения их в виде пикселей. (Вы могли бы также спросить, как сделать текст курсивом.)

+0

Хорошо, это несчастливо. Спасибо. – gmoss