если вы видите этот текст, отключите в настройках форума использование JavaScript
Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания .
Новичкам также крайне полезно ознакомиться с данным документом .
а я знаю как наоборот.. 22.11.01 01:51 Число просмотров: 1089
Автор: zelych Статус: Member
cmp al,10
sbb al,99h
das
<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: