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





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
а я так всегда делаю 22.11.01 13:09  Число просмотров: 1138
Автор: z0 <z0> Статус: Member
<"чистая" ссылка>
and al,0fh
or al,30h
cmp al,39h
jbe _1
add al,7
_1:
<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-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach