Avatar billede neocron Nybegynder
27. juli 2006 - 10:05 Der er 10 kommentarer og
2 løsninger

Binær

Hurtigt spørgsmål... jeg er på ferie, er hurtigt på netcafe og her er mit spørgsmål.

Betragt følgende eksempel -

byte a = 36;
byte b = 28;
long c;
c = a & b;
Console.WriteLine("c = {0}", c);

Variablen c vil blive udskrevet som decimal tal, dvs. 4. Jeg vil gerne have det udskrevet som binært så at outputtet bliver 000100 istedet for 4. Hvordan kan jeg gøre det? Jeg har en ide om at der måske er en conversion i stil med Convert.TilBinær... men, kan ikke tjekke selv :(

(Sidespørgsmål: Hvordan outputter jeg et decimaltal som binært i C++?)
Avatar billede the_party_dog Nybegynder
27. juli 2006 - 10:10 #1
Convert.ToString(Tal, 2);
Avatar billede mcgoat Nybegynder
27. juli 2006 - 10:11 #2
string Byte2Bin(unsigned char c)
{
    string S;
    unsigned char Msk = 0x80;

  for (int i = 0; i < 8; ++i)
  {
      if (c & Msk)
        S += '1';
      else
        S += '0';
      Msk >>= 1;
  }
  return S;
}

laver en char til binær, så det er vel bare at ændre indput?
Avatar billede neocron Nybegynder
27. juli 2006 - 10:12 #3
Så simpelt? Fantastisk... Smid et svar, da jeg ikke kan komme på foreløbig. Smutter nemlig om 10 min.
Avatar billede the_party_dog Nybegynder
27. juli 2006 - 10:13 #4
neocron> Den returnere ikke det binære tal med 8 tal. Den fjerner alle udnødvendige 0'er foran. Så 5 vil komme til dig som "101". Du ville forvente "00000101".
Avatar billede the_party_dog Nybegynder
27. juli 2006 - 10:14 #5
Et svar hvis du vælger mig, men ellers er mcgoat's forslag måske bedre...
Avatar billede neocron Nybegynder
27. juli 2006 - 10:17 #6
Du har helt ret, party_dog, men jeg plejer altid at skriver 0'erne for overskuelighedens skyld. Vil teste begge muligheder når jeg kommer hjem!

Vi kan gøre som Solomon, og lade det gå halvt om halv og lade jer begge få point, så hvis mcgoat smider et svar hurtigt, så fikser vi det.
Avatar billede the_party_dog Nybegynder
27. juli 2006 - 10:19 #7
Jeg er helt enig... Retfærdighed frem for alt... Vise ord den gamle mand kom med..
Avatar billede the_party_dog Nybegynder
27. juli 2006 - 10:19 #8
Men ellers kan du begynde på noget padding, hvor du udfylder de manglede 0'er...
Avatar billede neocron Nybegynder
27. juli 2006 - 10:23 #9
Ja, han var ikke helt galt på den.
Det er ikke nødvendigt med 0'erne i output.. det er bare mig der kom til at skrive det som jeg stiller dem op til sammenligning :)

party_dog, gør det noget at der måske går en uge på point? (Medmindre jeg kommer på netcafe igen).. skal jo gerne lige have et svar fra mcgoat.
Avatar billede the_party_dog Nybegynder
27. juli 2006 - 10:29 #10
Det gør intet... Jeg har al den tid i verden der skal til... Solen skinner, man kan jo ikke være i dårligt humør med dette vejr.
Avatar billede mcgoat Nybegynder
27. juli 2006 - 10:35 #11
yessir! :)
Avatar billede neocron Nybegynder
28. juli 2006 - 12:09 #12
Point som lovet, kunne ikke holde mig fra netcafeen :)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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