Learn when you want, where you want with convenient online training courses. Sign up now!
Experts Exchange Solution brought to you by
"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.
dim CRC as bytedim CRCDATA as bytedim CRCbit0 as bytedim CRCDATAbit0 as bytedim I as bytedim TestBit as byteCRC=0CRCDATA=40 'inputFor I = 0 to 7 ' Do for all 8 bits in data byte CRCBit0 = Bitwise.BitAnd( CRC, &b1 ) CRCDATAbit0=Bitwise.BitAnd( CRCDATA, &b1 ) TestBit = Bitwise.BitXor( CRCBit0, CRCDataBit0 )' XOR bit0 of data byte and crc CRCData = Bitwise.ShiftRight( CRCData, 1 ) ' Position data byte for next bit test If TestBit = 0 then goto Shift ' If test bit not set, just shift CRC CRC = Bitwise.BitXor( CRC, 24 ) ' If set, account for EXOR feedback $18=24dec Shift: ' Shift right the CRC byte CRC = Bitwise.ShiftRight( CRC, 1 ) ' CRC bit 0 to bit bucket if TestBit=1 then CRC = Bitwise.BitOr( CRC,128) END IFNext I Test bit rotates into CRC bit 7Next I
Open in new window
Function Bit8(l As Long) As Boolean
If l And 128 Then
Bit8 = True
Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.
From novice to tech pro — start learning today.
Premium members can enroll in this course at no extra cost.