Toon posts:

[VC++] hexadecimale waarde naar ascii

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hey specialisten _/-\o_ ,

Wanneer we het hexadecimale getal "3F" (noodgedwongen) opslagen in een array van chars maakt hij daar "3366" (de ascii waarde) van. Het is wenselijk dat hij niet de ascii waarde maar 3F zelf opslaagt (het vraagteken). We wensen dus als input "3F" en niet het vraagteken, terwijl dit in een array van char moet komen. Hoe krijgen we dit voor elkaar? Bestaat daar een standaard conversie voor? Kunnen we het opslaan van "3F" niet forceren?

opmerking:
Voor de ascii tabel: http://www.asciitable.com/
3Fh = ? (ascii)

mvg,
Filip en Luk :P

[ Voor 20% gewijzigd door Verwijderd op 10-04-2003 15:30 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

komt die 3f van buitenaf (dus door invoer van de gebruiker ofzo)? Dan strtol ()
Anders kun je gewoon 0x3f of '\x3f' gebruiken

En ja dit staat ook in je documentatie

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Je zou gebruik kunnen maken van de functie _itoa. Met deze functie kun je intergers omzetten naar strings. Deze integer kun je dan omlaten zetten naar een hexadecimaal string.

Bijvoorbeeld _itoa(10, charstring, 16). Dit levert een A op.

Bij jou zou je dan dus eerst nog je getal naar een int moeten converteren.

Verwijderd

Topicstarter
.oisyn (y) :)

We hebben het superingewikkeld proberen oplossen en het is inderdaad niet meer als uw oplossing. Straf, maar superbedankt :).

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

Verwijderd schreef op 10 April 2003 @ 15:34:
Je zou gebruik kunnen maken van de functie _itoa. Met deze functie kun je intergers omzetten naar strings. Deze integer kun je dan omlaten zetten naar een hexadecimaal string.

Bijvoorbeeld _itoa(10, charstring, 16). Dit levert een A op.

Bij jou zou je dan dus eerst nog je getal naar een int moeten converteren.
wat is dan het nut van die functie? Hoe zou jij het precies aan willen pakken? Dus OF je begrijpt de vraag verkeerd OF je denkt heel krom ;)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Omdat hij zei dat hij het getal hexgetal 3F had nam ik aan dat dit een hexwaarde was die in het programma aanwezig was. En met deze functie kun je getallen omzetten naar een string. Maar dat bleek niet het geval te zijn.

  • Rowwan
  • Registratie: November 2000
  • Laatst online: 21:16
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
typedef unsigned char BYTE;

BYTE chars2byte(char b1, char b2)
// Converts 2 characters (representing an hex. value) to a hexadecimal value.
// Letters must be CAPITALS  
// E.g b1='2' and b2='3' represents 0x23 
{
    b1 = b1 - 0x30;
    if (b1 > 9) b1=b1-7;
    b2 = b2 - 0x30;
    if (b2 > 9) b2=b2-7;
    return (b1<<4)+b2;
}


chars2byte('F','F') retourneerd 0xff

Of wat bedoel je precies? :?

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

Rowwan daar heb je dus strtol () voor

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1