1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
   | 
 
 
 
 
 
 
 
 
 
  #include <stdio.h> #include <stdlib.h> int stare_bit_field(int original_value, int value_to_store, unsigned starting_bit, unsigned ending_bit) { 	unsigned int i; 	unsigned make = 0; 	for (i = starting_bit; i >= ending_bit; i--) 	{ 		make |= 1 << i; 	} 	original_value = (~make)&original_value; 	value_to_store <<= ending_bit; 	value_to_store &= make; 	original_value |= value_to_store; 	return original_value; } int main() { 	int original_value; 	int value_to_store; 	unsigned starting_bit; 	unsigned ending_bit; 	printf("请输入 original_value, value_to_store, starting_bit, ending_bit:"); 	scanf("%x %x %x %x",&original_value, &value_to_store, &starting_bit, &ending_bit); 	original_value = stare_bit_field(original_value, value_to_store, starting_bit, ending_bit); 		printf("%x", original_value);
  	system("pause"); 	return 0; }
 
  |