Hvordan assigner man et binærtall til en variabel i C, eller er det ikke
mulig?
--
## Thore Bjerklund Karlsen ## I am just an atom in an ectoplasmic ##
## -=-=-=-=-=-=-=-=-=-=-=-=- ## sea, without direction or a reason to ##
## th...@visuality.no ## exist; The anechoic nebula rotating in ##
## home.sol.no/~tbk ## my brain is persuading me, contritely, ##
## -=-=-=-=-=-=-=-=-=-=-=-=- ## to persist. ##
> Hvordan assigner man et binærtall til en variabel i C, eller er det ikke
> mulig?
Det er ikke mulig, men det er ikke akkurat noen stor omvei å måtte skrive
det om til hex eller oktal. x = 0xff; eller x = 0377;
--
Gjermund Sørseth
>Det er ikke mulig, men det er ikke akkurat noen stor omvei å måtte skrive
>det om til hex eller oktal. x = 0xff; eller x = 0377;
Det er allikevel litt latterlig. Mer moderne språk, som Beta, lar deg
skrive 2x10100110. Og følgelig 8x3425 for oktale. Eller mer generelt,
nx<tall> for base-n tall. Meget grei ordning. :-)
--
"Between our dreams and actions lies this world."
- Bruce Springsteen, "Dead Man Walking"
Tor Iver Wilhelmsen to...@online.no
Gjermund Sørseth wrote:
> > Hvordan assigner man et binærtall til en variabel i C, eller er det ikke
> > mulig?
>
> Det er ikke mulig, men det er ikke akkurat noen stor omvei å måtte skrive
> det om til hex eller oktal. x = 0xff; eller x = 0377;
>
> --
> Gjermund Sørseth
I beg to differ, vi kan bruker inline assembly:
int iVar;
_asm MOV iVar,10010101b
-- Kjetil
Og hvor portabelt er dette?
Stig Hemmer.
det er hverken portabelt eller særlig fantasifullt.
skal man nå likevel grise kan man jo enten lage en define som
produserer enkeltbits:
#define BIT(n) (1<<(n))
og bruke bitvis OR for å kombinere dem:
resultat = BIT(7) | BIT(5) | BIT(3) | BIT(0);
eller man kan alltids angi binærtallet som en streng og skrive en
funksjon som produserer en int ut ifra strengen.
inline int b2i (char *s) /* OBS ikke alle cc'er støtter "inline" */
{
int i,c,r;
i = c = r = 0;
for (i = (strlen(s) - 1); i >= 0; r |= (s[i--] == '1')<<c++);
return(r);
}
eller man kan simpelthen bli voksen, slutte å skrive obfuskert kode og
lage fornuftige makroer og bruke simpel boolsk algebra der man skal
fikle med bits ;-)
-Bjørn
--
Bjørn Borud <bo...@guardian.no> | "The Net interprets censorship
<URL:http://www.pvv.unit.no/~borud/> | as damage and routes around it."
UNIX person, one of "them" | - John Gilmore