Мы показываем две функции, которые печатают один символ в двоичном формате.
void printbinchar(char character)
{
char output[9];
itoa(character, output, 2);
printf("%s\n", output);
}
printbinchar (10) запишет в консоль
1010
itoa - это библиотечная функция, которая преобразуетодно целочисленное значение для строки с указанным основанием.Например ... itoa (1341, output, 10) запишет в выходную строку "1341".И, конечно же, itoa (9, output, 2) запишет в выходную строку «1001».
Следующая функция выведет на стандартный вывод полное двоичное представление символа, то есть напечатаетвсе 8 битов, даже если старшие биты равны нулю.
void printbincharpad(char c)
{
for (int i = 7; i >= 0; --i)
{
putchar( (c & (1 << i)) ? '1' : '0' );
}
putchar('\n');
}
printbincharpad (10) запишет в консоль
00001010
Теперь я представляю функцию, которая печатает всю строку(без последнего нулевого символа).
void printstringasbinary(char* s)
{
// A small 9 characters buffer we use to perform the conversion
char output[9];
// Until the first character pointed by s is not a null character
// that indicates end of string...
while (*s)
{
// Convert the first character of the string to binary using itoa.
// Characters in c are just 8 bit integers, at least, in noawdays computers.
itoa(*s, output, 2);
// print out our string and let's write a new line.
puts(output);
// we advance our string by one character,
// If our original string was "ABC" now we are pointing at "BC".
++s;
}
}
Однако учтите, что в itoa не добавляются нули-заполнители, поэтому printstringasbinary ("AB1") выведет что-то вроде:
1000001
1000010
110001