/ Published in: C
Expand |
Embed | Plain Text
// <Pointer on C> by Kenneth A. Reek // P89 // No.5 int store_bit_field(int original_value, int value_to_store, unsigned starting_bit, unsigned ending_bit) { unsigned int mask = ~0; int n_bits = sizeof(unsigned int) * 8; mask <<= (n_bits - 1 - starting_bit) ; mask >>= (n_bits - (starting_bit - ending_bit + 1)); mask <<= ending_bit; return (original_value & ~mask) | ((value_to_store << ending_bit) & mask); } int main (int argc, char const *argv[]) { return 0; }
You need to login to post a comment.
