數值類型連續Bit存儲讀取方法
一般為了節省內存,一個unsigned char占8bit,分bit進行存儲。存儲時單個bit對外可以使用bool值,多個連續的bit可以使用unsigned char。
獲取/設置單個bit值方法
獲取/設置多個連續bit值方法
static bool getBitValue(unsigned char data, unsigned char bit) { return (data >> bit) & 1; } static void setBitValue(unsigned char &data, bool value, unsigned char bit) { if(value) { data |= (1u << bit); } else { data &= ~(1u << bit); } } static unsigned char getRangeBitValue(unsigned char data, unsigned char lower_bit, unsigned char high_bit) { data = data & ((1 << (high_bit + 1)) - 1); data = data >> lower_bit; return data; } static void setRangeBitValue(unsigned char &data,unisgned char value, unisgned char lower_bit, unsigned char high_bit) { value = value << lower_bit; unsigned char mask = (1 << (high_bit + 1)) -1; mask = mask & ~((1 << lower_bit) - 1); value &= mask; data &= ~mask; data |= value; }

浙公網安備 33010602011771號