一、
_ cror_是右移
可以以最后一个字母区分l->left左边 r->right 右边
比如左移,先将要左移的数与自己进行与运算,看看有没有产生进位,并将进位保存下来
然后将要左移的数左移,之后再判断之前有无进位,如果有就用1与左移后的数进行或运算。
二、
3)#if 0 或 #if 1注释:
当屏蔽掉大块代码时,使用"#if 0"比使用"/**/"要好。(因为用"/**/"做大段的注释时,需要防止被注释掉的代码段中有嵌套的"/**/",一旦出现"/**/"嵌套"/**/"的情况,会导致你注释掉的代码区域并不是你想要的区域范围)
情况一:常见的一中,如有一段不想要的代码,可以直接用"#if 0 ... #endif"形式来注释,效果等同于"/**/"
#if 0
...程序段...
#endif
情况二:选择结构的条件编译。(如果常量为真【非0,随便什么数字,只要不是0】,就执行程序段1,否则执行程序段2。)
#if 常量
...程序段1...
#else
...程序段2...
#endif
情况三:嵌套情况。(如果常量a为真【非0,随便什么数字,只要不是0】,就执行程序段1。当常量a为0且常量b为真时,执行程序段2;当常量a为0且常量b为0时,执行程序段3)
#if 常量a
...程序段1...
#else
#if 常量b
...程序段2...
#else
...程序段3...
#endif
#endif
三、取到数字的每一位
设一个数为n,则在C语言中其个位、十位、百位、千位依次这样计算:n/1%10,n/10%10,n/100%10,n/1000%10
代码如下:
#include<stdio.h>
int main(){
int n = 123456;
int unitPlace = n / 1 % 10;
int tenPlace = n / 10 % 10;
int hundredPlace = n / 100 % 10;
int thousandPlace = n / 1000 % 10;
printf("个位:%d\n十位:%d\n百位:%d\n千位:%d\n", unitPlace, tenPlace, hundredPlace, thousandPlace);
getchar();
return 0;
}