Skip to main content
GameDev.net gamedev.net
🔒 Locked

set -clear bit

Started by streamer Oct 13, 2005 at 1:53 PM 4 replies 450+ views
Original Post
streamer
streamer
Hello. I created a simple proc that sets n-t bit to 1 void SetBit(WORD &data, int bit) { int i = 1; // shift bits by i value i = i << bit; // set bit to 1 data |=i; } how can I create proc that sets n-t bit to 0? thanks
Moomin
Moomin
void UnsetBit(WORD &data, int bit){int i = 1;// shift bits by i valuei = i << bit;// inverse bitsi = ~i;// set bit to 0data &=i;}


Edit : yeah i ment
i = ~i;

[Edited by - Moomin on October 14, 2005 12:58:48 PM]
demonkoryu
demonkoryu
void ClearBit(WORD &data, int bit){assert( (bit >= 0) && (bit < sizeof(WORD)*8 );WORD bitmask = ~(1 << bit);// set bit to 0data &=bitmask;}


[edit]changed bitmask type from int to WORD...
streamer
streamer
Quote:
Original post by Moomin
void UnsetBit(WORD &data, int bit){int i = 1;// shift bits by i valuei = i << bit;// inverse bitsi = ~bit;// set bit to 0data &=i;}


Edit :
i ~= bit;
to
i = ~bit;


thanks [smile] but this doesn't work.
demonkoryu
demonkoryu
He mixed up i and bit.

Probably he wanted to write

// inverse bitsi = ~i;


instead of
// inverse bitsi = ~bit;

streamer
streamer
Quote:
Original post by Konfusius
void ClearBit(WORD &data, int bit){assert( (bit >= 0) && (bit < sizeof(data)*8 );int bitmask = ~(1 << bit);// set bit to 0data &=bitmask;}


But this one does [smile]. Thank you

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.