Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.08.2011, 00:28   #1
MooNDeaR
В стагнации
Участник клуба
 
Аватар для MooNDeaR
 
Регистрация: 29.07.2011
Сообщений: 1,303
По умолчанию Программа выдает двоичное представление целого числа в компьютере (на C)

Программа выдает двоичное представление целого числа в компьютере:
Код:
#include <iostream>
#include <clocale>

using namespace std;

int main()
{   
	setlocale(LC_ALL,"Russian");
	int n;
	cout << "Введите число типа Int:  ";
	cin >> n;
	cout << "Его двоичный вид в дополнительном коде (32 разряда): " << endl;
	for(int i = sizeof(int)*8 - 1; i >=0; i--)
		cout << int((n>>i)&1);
	cin.get();
	cin.get();
}
E-mail: pashaworking@gmail.com | ICQ: 479914426 | Skype: moondearr
Понять, чего от тебя требует заказчик – это уже половина всей работы, а иногда и полностью выполненное задание.
MooNDeaR вне форума Ответить с цитированием
Старый 06.08.2011, 11:19   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
выдает двоичное представление целого числа
Это ошибка?
P.S. Можно еще itoa() использовать для перевода http://msdn.microsoft.com/ru-ru/library/yakksftt.aspx
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.08.2011, 12:13   #3
Form_13
Форумчанин
 
Регистрация: 25.04.2011
Сообщений: 107
По умолчанию

Прошу прощения, что влезаю в вашу милую беседу, а как работает:

Код:
for(int i = sizeof(int)*8 - 1; i >=0; i--)
		cout << int((n>>i)&1);
Насколько я понял, он считает битовый размер типа int, и потом отнимая по одному биту, выводит этот порядковый бит числа n? Меня интересует, значение int((n>>i)&1). Что именно значит эта операция?
Form_13 вне форума Ответить с цитированием
Старый 06.08.2011, 12:54   #4
MooNDeaR
В стагнации
Участник клуба
 
Аватар для MooNDeaR
 
Регистрация: 29.07.2011
Сообщений: 1,303
По умолчанию

Цитата:
Сообщение от Form_13 Посмотреть сообщение
Прошу прощения, что влезаю в вашу милую беседу, а как работает:

Код:
for(int i = sizeof(int)*8 - 1; i >=0; i--)
		cout << int((n>>i)&1);
Насколько я понял, он считает битовый размер типа int, и потом отнимая по одному биту, выводит этот порядковый бит числа n? Меня интересует, значение int((n>>i)&1). Что именно значит эта операция?
Выглядит всё это примерно так: пусть есть число 49.
Его двоичный вид будет 00110001.
Операция ">>" означает побитовый сдвиг вправо, а операция "&" побитовое И. Ну вот и получается что в цикле прогоняется и выводится на экран каждый бит числа.

сдвинули 00110001 на 7 разрядов вправо
00000000
00000001
---------
0

на 6 разрядов
00000000
00000001
---------
0

на 5 разрядов
00000001
00000001
---------
1

на 4 разряда
00000011
00000001
---------
1

И т.д. Мы каждый раз сдвигаем на один разряд меньше
E-mail: pashaworking@gmail.com | ICQ: 479914426 | Skype: moondearr
Понять, чего от тебя требует заказчик – это уже половина всей работы, а иногда и полностью выполненное задание.
MooNDeaR вне форума Ответить с цитированием
Старый 06.08.2011, 12:56   #5
MooNDeaR
В стагнации
Участник клуба
 
Аватар для MooNDeaR
 
Регистрация: 29.07.2011
Сообщений: 1,303
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Это ошибка?
P.S. Можно еще itoa() использовать для перевода http://msdn.microsoft.com/ru-ru/library/yakksftt.aspx
Вообще да, можно Только ты это преподу докажи
E-mail: pashaworking@gmail.com | ICQ: 479914426 | Skype: moondearr
Понять, чего от тебя требует заказчик – это уже половина всей работы, а иногда и полностью выполненное задание.
MooNDeaR вне форума Ответить с цитированием
Старый 06.08.2011, 14:08   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Только ты это преподу докажи
Ну если рассказать ему как она работает то в принципе рискнуть можно
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод из натурального десятичного числа в двоичное представление(string) Berserk0 Помощь студентам 3 17.06.2011 00:52
Программа перевода числа из десятичного в двоичное. MiraJe Qt и кроссплатформенное программирование С/С++ 7 16.01.2011 14:11
преобразование десятично-точечной записи ip-адреса в их двоичное представление 0vavan0 Работа с сетью в Delphi 1 17.11.2010 09:40
Вывести числа целого неотр. числа Gonzo Помощь студентам 11 04.05.2010 16:55
на компьютере нет Delphi, приложение не запускается, выдает ошибку - не является приложением Win32 Vadim_Haritonov Общие вопросы Delphi 3 30.10.2008 12:23