Avatar billede krukken Juniormester
04. august 2006 - 21:09 Der er 9 kommentarer og
1 løsning

Ligge to hex til sammen

const char hex1 = 0x30 eller 0x03 (bare det nemmeste)
const char hex2 = 0x0A

Hvordan laver man en funktion der kan ligge de to tal sammen så det giver 0x3A?
Avatar billede arne_v Ekspert
04. august 2006 - 21:30 #1
+ boer virke
Avatar billede krukken Juniormester
04. august 2006 - 21:41 #2
He he, så skal man vist bruge en #define - "Hvordan laver man en funktion ":-)
Avatar billede krukken Juniormester
04. august 2006 - 21:41 #3
Og det virker ikke - i hvert fald ikke for mig:-)
Avatar billede bertelbrander Novice
04. august 2006 - 21:56 #4
#include <iostream>

int main()
{
  const char hex1 = 0x30;
  const char hex2 = 0x0A;
  char hex3 = hex1 + hex2;
  std::cout << std::hex << (unsigned int )hex3 << std::dec << std::endl;
}
Eller hvis det skal være en funktion:
#include <iostream>

char add(const char h1, const char h2)
{
  return h1 + h2;
}

int main()
{
  const char hex1 = 0x30;
  const char hex2 = 0x0A;
  char hex3 = add(hex1, hex2);
  std::cout << std::hex << (unsigned int )hex3 << std::dec << std::endl;
}
Avatar billede d34c0n Praktikant
05. august 2006 - 06:42 #5
DWORD value = 0x1A;
value += 0x1A;

burde man ikke også kunne det egentlig? :)
Avatar billede tiller3 Nybegynder
05. august 2006 - 18:11 #6
Det ser ud til at du er lidt forvirret over hvordan computeren gemmer tal, men hex er bare en anden maade at skrive tal paa, ikke en ny type tal. Saa

const char hex1 = 0x0A ;
Er helt og aldeles totalt det samme som
const char hex2 = 10;
Avatar billede d34c0n Praktikant
05. august 2006 - 21:13 #7
ja men han skal bruge det i hex.
Avatar billede arne_v Ekspert
05. august 2006 - 23:56 #8
hex har kun noget at gøre med hvordan en konstant står i kildekoden eller
en variabel indlæses eller noget udskrives

internt er de binære anyway

men + virker på char i C/C++
Avatar billede mollevp Nybegynder
06. august 2006 - 10:20 #9
Du bør dog være opmærksom på at:
unsigned char hex1 = 0xff;
unsigned char hex2 = 0xff;
unsigned char res = hex1 + hex2;

Vil resultere i en trunkering af resultatet da en unsigned char typisk max kan indehode 255~0xff. Du skal derfor være opmærksom på at gemme restultatet i en passende data-type.
Avatar billede krukken Juniormester
07. august 2006 - 00:33 #10
bertelbrander > hvis du begynder at samle på point, så må du lige vende tilbage til mig. Jeg er vist ved at skylde dig nogle:-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester