%#o:输出带前导o的八进制数
%#X:输出带前导ox的十六进制数
printf可以使用使用格式控制串“%o”、“%X”分别输出八进制整数和十六进制整数
%-8d:数字靠左对齐输出,共八位,不足的空格补齐
%+8d:数字靠右对齐输出,共八位,不足的空格补齐
取个位数使用的对十取余法以及浮点数强制类型转换为整型
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
printf("%d",2<<(n-1));
//在2进制中,2的表示为00000010
//我们只使用移位符来完成2的n次方,仅需使这个1往左移动。
//如4:00000100;8:00001000
//要注意为什么这里是(n-1)
//因为2本身已经在第二位了,是2的1次方。
return 0;
}
原文连接:https://www.cnblogs.com/shrimp-can/p/5145351.html
移位运算符包括左移"<<“和右移”>>"
左移运算符<<:
语法格式:需要移位的数字<<移位的次数n
运算规则:按二进制形式把所有数字向左移动相应的位数,高位移出(舍弃),低位的空位补0。相当于乘以2的n次方
例如:4<<2 ,就是将数字4左移2位
过程:4的二进制形式:00000000 00000000 00000000 00000100;然后把高位2个0移出,其余所有位向左移动2位,低位补0,得到:00000000 00000000 00000000 00010000;十进制数为16,16=4*22。
#include<stdio.h>
int main()
{
int age;
scanf("%d",&age);
printf("%lld",age*(long long)3.156e7);
return 0;
}
3.156e7要声明longlong 才可以把乘积定为longlong,否则随age的int