информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsПортрет посетителяЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Tailscale окончательно забанила... 
 Прекращение работы антивируса Касперского... 
 Microsoft Authenticator теряет... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
И какие библиотеки использует "код извращенца"? :)) 22.11.01 14:32  Число просмотров: 1114
Автор: crk Статус: Незарегистрированный пользователь
<"чистая" ссылка>
<programming>
[C++] Программа, которая переводит число в HEX 21.11.01 18:05  
Автор: crk Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Народ, привидите пример программы, которая переводит число в HEx...

Ну естественно не такой пример:

void main{
int a;
scanf("%d",&a);
printf("%X,a);

}

:))

Чтобы не использовать %X!
Что-то у меня ни один из алгоритмов не работает ))) кроме... 22.11.01 14:47  
Автор: crk Статус: Незарегистрированный пользователь
<"чистая" ссылка>
самого простого ;))

#include <iostream.h>

void main()
{
int a;

cin >> a;
cout << hex << a;
}

Остальные все с ошибками (
Хехе ! А ты #include и main пишишь ???? 22.11.01 14:55  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
А вот тебе код извращенца :) 22.11.01 10:17  
Автор: PS <PS> Статус: Elderman
Отредактировано 22.11.01 10:41  Количество правок: 1
<"чистая" ссылка>
#define m1 0x0f;
#define m2 0xf0;

void PrintHex( int a )
{
char s[9];
unsigned char* n = (unsigned char*)&a;
for( int i = 0; i<8; i++ )
{
char f = (*n)&m1;

if( (f)<10 )
s[i] = (f)+0x30;
else
s[i] = (f)+0x37;

i++;
f = (*n)&m2;

f = f>>4;
f = f&m1;
if( (f)<10 )
s[i] = (f)+0x30;
else
s[i] = (f)+0x37;

n++;
}

s[i] = 0;

for( i = 7; i>=0; i-- )
printf( "%c", s[i] );
printf( "\n" );
}

А то все какие-то маленкие алгоритмы приводят, никто с указателями работать не хочет. Брррр... :)))
И какие библиотеки использует "код извращенца"? :)) 22.11.01 14:32  
Автор: crk Статус: Незарегистрированный пользователь
<"чистая" ссылка>
В смысле ? 22.11.01 14:54  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
Если убрать printf, который был оставлен как приблуда, для визуализации, то только рантаймовские.
Если пишешь под DOS, можешь вообще писать из буфера в видио память.

А что заинтересовался ? Вон народ код покрасивше привел.
Но мне мой больше нравится, особо если его причесать, никаких тебе делений по модулю, знай себе указатель двигай ;)
to PC не спорю, написано оригинально, видно что на C пишешь давно ;) 22.11.01 16:38  
Автор: Cyril <sc> Статус: Member
<"чистая" ссылка>
[C++] Программа, которая переводит число в HEX 21.11.01 19:29  
Автор: :-) <:-)> Статус: Elderman
<"чистая" ссылка>
Ты же [C++] в заголовок не просто так поставил?
Вот как это на C++ делается :-))
#include <iostream.h>

void main()
{
   int a; 

   cin >> a;
   cout << hex << a;
}

---
[C++] Программа, которая переводит число в HEX 21.11.01 19:03  
Автор: Cyril <sc> Статус: Member
<"чистая" ссылка>
> Народ, привидите пример программы, которая переводит число
> в HEx...
>
> Ну естественно не такой пример:
>
> void main{
> int a;
> scanf("%d",&a);
> printf("%X,a);
>
> }
>
> :))
>
> Чтобы не использовать %X!

1. Берем число и делим с остатком на основание системы счисления(16)
2. Остаток(0..15) преобразуем в 0..A,B,C,D,E,F и выводим на экран или пишем в массив и.т.д
3. число = оставшаяся целая часть
4. пока число != 0 переходим на пункт 1

Вот вроде бы и все. В итоге этих нехитрых действий ты получишь hex число
правда справа на лево, но это уже детали :)
[C++] Программа, которая переводит число в HEX 22.11.01 13:00  
Автор: Cyril <sc> Статус: Member
<"чистая" ссылка>
> > Народ, привидите пример программы, которая переводит
> число
> > в HEx...
> >
> > Ну естественно не такой пример:
> >
> > void main{
> > int a;
> > scanf("%d",&a);
> > printf("%X,a);
> >
> > }
> >
> > :))
> >
> > Чтобы не использовать %X!

#define SYMBASE 0x37
#define NUMBASE 0x30

void int2hex(unsigned int v){
  char s[4];
  int r,i;
  int j=3;

  do {
    r=v%0x10;
    i=v>>4;
    if (r > 9) r+=SYMBASE;
    else r+=NUMBASE;
    s[j--]=r;
    v=i;
  } while (i!=0);
  while (j>=0) s[j--]='0';
  cout<<s;
}

---
конечно, пишу :))) Вот, Напрмер, алгоритм Ciril'a... 22.11.01 17:40  
Автор: crk Статус: Незарегистрированный пользователь
<"чистая" ссылка>
выдаёт 2 ошибки:

error C2065: 'cout' : undeclared identifier
error C2297: '<<' : illegal, right operand has type 'char [4]'
Ёш твою медь ! 22.11.01 17:48  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
#include <iostream.h>
Может для начала книжечку почитать ? Их много сейчас. А ?
Дык, нехрен за рамки stdio.h выезжать ;))) 22.11.01 18:05  
Автор: crk Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> #include <iostream.h>
> Может для начала книжечку почитать ? Их много сейчас. А ?

А ты думал без книги сижу? :P Керниган, Ритчи ... Усёк? :)
допустим можно сделать так, используя только stdio.h 22.11.01 18:10  
Автор: crk Статус: Незарегистрированный пользователь
<"чистая" ссылка>
#include <stdio.h>
#define H 16

void main(){

int iNumber, iRes, iOst, i;
char hex[100];

scanf("%d",&iNumber);

while(iRes!=0)

iRes=iNumber/H;
iOst=iNumber%H;

if(iOst==0)hex[i]='0';
if(iOst==1)hex[i]='1';
if(iOst==10)hex[i]='A';
if(iOst==2)hex[i]='2';
if(iOst==3)hex[i]='3';
if(iOst==11)hex[i]='B';
if(iOst==4)hex[i]='4';
if(iOst==5)hex[i]='5';
if(iOst==12)hex[i]='C';
if(iOst==6)hex[i]='6';
if(iOst==7)hex[i]='7';
if(iOst==13)hex[i]='D';
if(iOst==8)hex[i]='8';
if(iOst==9)hex[i]='9';
if(iOst==14)hex[i]='E';
if(iOst==15)hex[i]='F';

i++;
iResult=iOst;

}

i--;
for(;i>-1;i--)

{ printf("%c",hex[i]); }

}


;)))
еще вариант 22.11.01 20:53  
Автор: :-) <:-)> Статус: Elderman
<"чистая" ссылка>
#include <iostream.h>

void main()
{
   char HexDigits[] = "0123456789ABCDEF";
   char Buf[20];
   int n; 
   
   cin >> n;
   char *c = Buf;
   for (int k = sizeof(n)*2-1; k >= 0; k--)
     *c++ = HexDigits[n>>k*4&15];
   *c = 0;
   cout << Buf;
}

---
а я знаю как наоборот.. 22.11.01 01:51  
Автор: zelych Статус: Member
<"чистая" ссылка>
cmp al,10
sbb al,99h
das
Может, 69h лучше поз.99h ? ;) 22.11.01 09:48  
Автор: Chingachguk <Chingachguk> Статус: Member
<"чистая" ссылка>
> cmp al,10
> sbb al,99h
> das

Что-то у меня 99h не прокатывает ;) А вот 69h больше похоже !


mov cx,15
mov di,offset OutStr
cld
@Cycl:
mov al,cl
cmp al,10
sbb al,69h
das
stosb
loop @Cycl

mov dx,offset OutStr
call Message


@GoDos: mov ax,4c00h
int 21h
OutStr db ' ','$'
а я так всегда делаю 22.11.01 13:09  
Автор: z0 <z0> Статус: Member
<"чистая" ссылка>
and al,0fh
or al,30h
cmp al,39h
jbe _1
add al,7
_1:
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 1 s   Design: Vadim Derkach