如何做网站 站长教课,建湖做网站需要多少钱,一般使用的分辨率显示密度是多少?,wordpress 全站pjax这是在《使用位运算显示二进制数》的基础上进一步扩展#xff0c;实现反转一个值中最后n位#xff0c;参数为n和要反转的值。 ~可以一个字节中所有的位#xff0c;而不是选定的少数位。为达到指定要求#xff0c;需创建一个掩码#xff0c;该掩码最后n位设为1#xff0c;… 这是在《使用位运算显示二进制数》的基础上进一步扩展实现反转一个值中最后n位参数为n和要反转的值。 ~可以一个字节中所有的位而不是选定的少数位。为达到指定要求需创建一个掩码该掩码最后n位设为1其余的位设为0。然后对该掩码和一个值使用^运算就可以转置这个值得最后n位同时保留该值的其他位不变。 1 //使用位操作符来显示二进制并翻转该值的最后n位2 #includestdio.h3 char *itobs( int, char*); //integer to binary string4 void show_bstr( const char*); 5 int invert_end(int, int); //关键算法6 main()7 {8 char bin_str[8 * sizeof(int) 1];9 int number;
10 int n;
11 while(scanf(%d, number)1)
12 {
13 itobs( number, bin_str);
14 printf(%d is \n, number);
15 show_bstr( bin_str);
16 putchar(\n);
17 puts(Enter an integer you want to invert:);
18 scanf(%d, n);
19 numberinvert_end(number, n);
20 printf(%Inverting the last %d bits gives\n, n);
21 show_bstr(itobs(number, bin_str));
22 putchar(\n);
23 }
24 }
25 char *itobs( int n, char *ps)
26 {
27 int i;
28 static int size 8 * sizeof(int);
29 for( isize-1; i0; i--, n1)
30 ps[i](1n)0; //01n就是n的最后一位的值(1n也行)该值为0或1。字符数组需要字符0或1加上0的ASCII编码可以完成转换
31 ps[size]\0;
32 return ps;
33 }
34 //四位一组显示二进制字符串
35 void show_bstr(const char *str)
36 {
37 int i0;
38 while(str[i])
39 {
40 putchar(str[i]);
41 if(i%40 str[i])
42 putchar( );
43 }
44 }
45 int invert_end(int num, int bits)
46 {
47 int mask 0;
48 int bitval 1;
49 while( bits--0)
50 {
51 //mask|bitval;
52 //bitval1;
53 mask|1;mask1; //若用注释语句则需注释本句
54 }
55 mask1; //若用注释语句则需注释本句
56 return num^mask;
57 } 转载于:https://www.cnblogs.com/anthozoan77/p/4070041.html