[C#] Bit shifting

Pagina: 1
Acties:

  • Sircuri
  • Registratie: Oktober 2001
  • Niet online

Sircuri

Volledig Appelig

Topicstarter
Ik heb 1 byte met 3 waardes erin. Door bit shifting kun je heel makkelijk bijvoorbeeld de laatste 4 bits uit een byte halen als waarde. Maar hoe kan ik nu 3 verschillende waardes uit 1 byte halen?
Situatie: bit 0 en 1 zijn 1 waarde, bit 2,3,4 en 5 zijn 1 waarde en bit 6 en 7 zijn 1 waarde.... hoe kan ik deze 3 waarden nu afzonderlijk uit elkaar halen?
Ik zat zelf te denken aan zoiets:

code:
1
2
  // 2e waarde eruit halen (bit 2 t/m 5)
  int w = bit >> 2 & bit >> 5


maar goed... dit lijkt niet helemaal te werken. Kan iemand hier mee helpen?

Signature van nature


  • igmar
  • Registratie: April 2000
  • Laatst online: 12-05 15:46

igmar

ISO20022

Sircuri schreef op 12 maart 2004 @ 10:44:
Ik heb 1 byte met 3 waardes erin. Door bit shifting kun je heel makkelijk bijvoorbeeld de laatste 4 bits uit een byte halen als waarde. Maar hoe kan ik nu 3 verschillende waardes uit 1 byte halen?
Situatie: bit 0 en 1 zijn 1 waarde, bit 2,3,4 en 5 zijn 1 waarde en bit 6 en 7 zijn 1 waarde.... hoe kan ik deze 3 waarden nu afzonderlijk uit elkaar halen?
Met logische operaties in combinatie met bitshifting.

  • WVL_KsZeN
  • Registratie: Oktober 2002
  • Laatst online: 26-05 19:32
ik ken c# helemaal niet ;) maar kwa logische operaties doe je dit :

a = originele byte

waarde 1 = a AND %00000011
waarde 2 = (a AND %00111100)/4
waarde 3 = (a AND %11000000)/64

/me heeft eindelijk ook een icoontje.. woef.. boeien..


  • Sircuri
  • Registratie: Oktober 2001
  • Niet online

Sircuri

Volledig Appelig

Topicstarter
thanks... ben eruit

code:
1
2
3
 a = byte >> 6;       // bit 7 en 8
 b = byte >> 2 & 0xF; // bit 3,4,5 en 6
 c = byte & 0x3;      // bit 1 en 2

Signature van nature