Beim ersten Bit (Bitmask=1) sollte es funktionieren, danach schiebst du allerdings Bitmask nach links, was zur Folge hat, dass "if(DATA & Bitmask==1){..}" nicht mehr erfüllt sein kann. Man würde wohl eher DATA nach rechts durchschieben und immer mit "if(DATA & 1==1){..}" prüfen.