Помогите, пожалуйста, в таком вопросе!
Как вывести любой символ в двоичном виде в среде Си?
Знаю, как вывести число, а вот как любой символ - нет!

Комментарии
13.12.2011 в 01:00

попробуйте

char s="a";
printf("%h",(unsigned int) s);
13.12.2011 в 01:16

Можно попробовать так:
char str[] = "string";
char buf[8];
int sz;
sz = strlen(str);
int k;
for(int i=0;i<strlen(str);i++)
{
itoa(str[i],buf,2);//представление числа (символа) в двоичной форме
printf("%s\n",buf);
}
13.12.2011 в 01:21

Per anus ad astra!
Имеются в виду плюсы или чистый С?
В первом случае:

#include
#include

using namespace std;

int main(int argc, char *argv[])
{
char s='a';
cout << bitset<8>(s) << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
13.12.2011 в 02:22

Гм, что-то у меня не один из перечисленных вариантов не работает!
Вот такая функция переводит целочисленное число в двоичный код:


Думала, что можно сначала перевести символ в числовой код,



а потом воспользоваться этой функцией bin, но она не во всех случаях работает правильно!
Как быть?:hmm::hmm::hmm:
13.12.2011 в 02:33

Per anus ad astra!
В этой функции bin замени int на char, оно автоматом будет приводиться к восьмибитному uint'у.

То, что я выше написал, у меня вот только что скомпилилось и работало.
Кстати, даже ответы совпадают - вообще чудо.)


13.12.2011 в 11:01

Чайный наркоман, да, спасибо, компилится, работает!
А как сделать, что бы прога работала правильно и для чисел?
Вот, например, если char s='15';
то, ответ - 110101, а в реале должно быть 00001111!

Короч. у меня вот такое условие самой задачи:

Составить функцию, меняющую местами полубайты в двоичном представлении символа (символ, содержащий до перестановки значение 0х3f, после перестановки должен содержать 0хf3). Применить эту функцию ко всем символам заданной строки. Результаты представить в символьном, шестнадцатеричном и двоичном виде.

Функцию, я составила с помощью масок:



Это весь код задачи(на VS10)



Так вот, как этот перевернутый символ можно вывести в дв. системе, чем бы он не был?
13.12.2011 в 15:33

Люди никогда не достигнут совершенства, пока будут оставаться людьми...
Чайный наркоман, в вы отличаете СИ от СИ++?
14.12.2011 в 12:59

Per anus ad astra!
*Констанция*, char s='15'; - вообще чудесная запись, но чтобы оно работало лучше написать char s=15; А так оно тебе выдаёт 35 в шестнадцатиричной, а это, если глянешь в charmap (Пуск - выполніть - charmap), номер пятёрки. То есть у тебя символ потом равен пятёрке.
Так что выводи или своей функцией или bitset'ом, оно тебе всё выведет правильно.

[revolver], сначала, если любезный собеседник посмотрит, я уточнял, что из этого нужно использовать и заметил, что дальше буду писать на плюсах. Исходя из того, что всё скомпилировалось, я сделал правильный выбор. :3
Да и добрая тупая половина преподавателей разницы особой не видит.
14.12.2011 в 15:09

Люди никогда не достигнут совершенства, пока будут оставаться людьми...
Чайный наркоман, пардон... Я на коммент не посмотрел) Я увидел, что код на С++ и пришёл в ужас))
07.03.2012 в 12:36

Прошу прощения. Но это срочно. Работаю на фирме (ресепшн). Ответы на звонки, письма, переводы и конечно же ИНТЕРННЕТ.
Последнюю неделю у нас глючит инет. Пользователей у нас 30. У меня наряду с 2-3 сайтами постоянно открыты тумблр, дайри и редко ЖЖ.
За вчерашний день было скачано около 10 ГБ траффика. Все нервничали, почта не работала.
Директора нет уже 3 дня, а один "офисный червь" все капается и твердит, что докопается кто это столько скачивал.
А МНЕ ИНТЕРЕСНО, В ЭТОМ МОЖЕТ БЫТЬ И МОЯ "ЗАСЛУГА"?
Thanks in advance
07.03.2012 в 13:25

Люди никогда не достигнут совершенства, пока будут оставаться людьми...
nargiz, ну если вы смотрели потоковое видео -- да)
07.03.2012 в 14:29

[revolver]. Нет. Дело в том что унас видео и социальные сети недоступны ни для кого. Ю-туб тоже закрыт.
Бавыет даже ссылкой хочешь перейти какие-то сайты - тоже не открывает.
Мне интересно много ли "весит" то что я читаю ежедневно 5-6 дневников, коментирую их, и открываю по 20-30 страниц подряд на тумблр и соответственно сохраняю все на компе. (В конце рабочего дня все скидываю себе на флешку. Так что мой хард чист)
08.03.2012 в 07:49

Люди никогда не достигнут совершенства, пока будут оставаться людьми...
nargiz, не много. МАКСИМУМ Мегабайт 100-200 в день, и то если в дневниках высокодетализированные изображения по 10 штук на страницу.
08.03.2012 в 10:17

[revolver] Спасибо за инфу. 100-200 мегабайт немало)))
08.03.2012 в 10:49

Люди никогда не достигнут совершенства, пока будут оставаться людьми...
nargiz, современный интернет очень зол)