ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 12.11.2007, 23:14
__mad
Участник форума
Регистрация: 04.11.2007
Сообщений: 103
Провел на форуме:
548128

Репутация: 104
По умолчанию

Код:
#include <stdio.h>

int main(int argc,char**argv)
{	
	if(argc!=2){printf("%s <dig>\n",argv[0]);exit(1);}
	int p=atoi(argv[1]);
	for(printf("%d is binary -> ",p);p;p>>=1)
		printf("%d",p%2?1:0);	
	return printf("\n");
}
правда число в обратном порядке выводится) ну это не важно : D
 

  #12  
Старый 12.11.2007, 23:25
Forcer
Постоянный
Регистрация: 12.04.2007
Сообщений: 413
Провел на форуме:
3578578

Репутация: 275
Отправить сообщение для Forcer с помощью ICQ
По умолчанию

__mad
:-) Кроме всего прочего, зачем вот это:
Код:
p%2?1:0
 

  #13  
Старый 12.11.2007, 23:37
__mad
Участник форума
Регистрация: 04.11.2007
Сообщений: 103
Провел на форуме:
548128

Репутация: 104
По умолчанию

это для вывода бита... остаток от деления на 2, если он есть (остаток) значит бит установлен в еденичное значение, если его нету (остатка) значит число чётное и бит находится в нулевом положение, а что? : D
 

  #14  
Старый 12.11.2007, 23:37
DWORD
Участник форума
Регистрация: 24.07.2007
Сообщений: 138
Провел на форуме:
165671

Репутация: 215
По умолчанию

Ну я вовсе не претендую на звание самого чудесного кода, но вот что вышло у меня:
Код:
	unsigned int x, i = 32;
	char bits[33]; // Массив, чтобы не вызывать функции ввывода по несколько раз, создаем вот этот буфер
	cin >> x;
    // Так как вывод должен идти со старших битов, сдвигаем по-тихонечку 
    //число влево, так как старшие нули нас не интересуют
    while (--i && !(x & (1 << 31))) x <<= 1; 

    bits[i + 1] = 0x00;
    for (char k = 0; k <= i;k++)
    	bits[k] = (x >> 31) | 0x30, x <<= 1;
    cout << "\n" << bits;
Ну понятно, что максимальна длина входного числа 0xFFFFFFFF

Последний раз редактировалось DWORD; 12.11.2007 в 23:52..
 

  #15  
Старый 13.11.2007, 00:49
TheSoul
Познающий
Регистрация: 12.11.2007
Сообщений: 94
Провел на форуме:
4789789

Репутация: 71
По умолчанию

Всем большое Спс...!!!
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ