Go Down

### Topic: RFID Wiegand Interface Bit Manipulation and Masks (Read 616 times)previous topic - next topic

#### ilovetoflyfpv

##### Jan 22, 2013, 01:14 pm
Hi Gang

I am trying to extract serial number from a RFID bracelet using a Wiegand Interface. I have read that I need to use a combination of bit manipulation and masks. I have been able to get my head around bit manipulation but I'm having trouble with masks.

If for example I have the following raw code;

1 0110 1101 0101 1000 0011 1111 0

And I want to remove the right most bit, I simply use bit manipulation;

rawCode >> 1

This moves all bits one step to the right leaving me with;

1 0110 1101 0101 1000 0011 1111

If however I'm only interested in the remaining last 24 bits then I believe I need to use a mask;

0xFFFFFF

Specifically I need to combine bit manipulation and mask to extract the serial number;

serialNumber = (rawCode >> 1) & 0xFFFFFF

I don't understand the syntax for the mask;

0xFFFFFF

The 'F' I assume is a hexadecimal, therefore FFFFFF represents 24 bits. I don't get the 0x???

Can someone possibly explain?

Cheers

Jase

#### pYro_65

#1
##### Jan 22, 2013, 01:23 pmLast Edit: Jan 22, 2013, 01:25 pm by pYro_65 Reason: 1
literals in c/c++ use a prefix to distinguish between decimal, binary, and hexidecimal numbers.

0x is for hex

0b is for binary

decimal has no prefix.

numbers can have suffix's too denoting type,

float: 1.23f
long: 123456L
unsigned long: 123456UL
etc...

as for masks and bit manipulation, there are many articles on this exact issure here on the forums and web-wide

https://forum.arduino.cc/index.php?action=dlattach;topic=327736.0;attach=128670 New EEPROM library released

#### ilovetoflyfpv

#2
##### Jan 23, 2013, 09:40 am
Hi pYro_65

Thanks for the reply. I think I understand so 0x is a prefix to the literal FFFFFF. So it's basically saying what to expect the mask to be, in this case a hexadecimal. I could alternatively write this as 0b1111 1111 1111 1111 1111 1111?

Cheers

Jase

#### Nick Gammon

#3
##### Jan 23, 2013, 10:14 am
Without the spaces.
Please post technical questions on the forum, not by personal message. Thanks!

http://www.gammon.com.au/electronics

#### ilovetoflyfpv

#4
##### Jan 23, 2013, 12:31 pm
Hi Nick

Much appreciated.

Cheers

Jason

Go Up

Please enter a valid email to subscribe