编程语言
首页 > 编程语言> > 蓝桥杯第十二届个人省赛C/C++B组

蓝桥杯第十二届个人省赛C/C++B组

作者:互联网

 

空间


对于本题首先要知道计算机储存容量问题

容量问题小结:
容量的单位按由小到大分为b,B,KB,MB,GB,TB...
其间全是用1024进制的,也即是2的10次方.

b是位的英文缩写即(bit)B是字节的英文缩写即(Byte)

单位换算

1B=8b
1 KB=1024 B
1 MB= 1024 * 1024 B
1 GB=1024 MB=1024 * 1024 KB=1024 * 1024 * 1024 B 

解题: 先将MB换算为b 即 256*1024*1024*8=2147483648 b

再除以32 2147483648/32=67108864

即答案为 67108864

用代码解题:即计算数据左移还是右移 乘以1024为左移10为即扩大;除法1024为右移10位缩写

位运算符:<< >> ~ | ^ &

/*左移运算符“<<”是双目运算符。左移n位就是乘以2的n次方。
 其功能把“<<”左边的运算数的各二进位全部左移若干位,
 由“<<”右边的数指定移动的位数,高位丢弃,低位补0。
例: a<<4 指把a的各二进位向左移动4位。如a=00000011(十进制3),
左移4位后为00110000(十进制48)。*/ 
#include<stdio.h>
int main()
{
	printf("%d\n",256<<18);
	return 0;
 } 

提示:在进行位运算时候变量最好定义为无符号类型,因为由于有符号第一位是符号位,而各个平台上的位操作符对符号位的处理可能各不相同,因此最好使用无符号类型进行运算。此外,我们可以通过对整型类型的选择来控制位的个数,这在一些情况下是非常有用的。 

卡片

标签:1024,左移,10,符号,MB,C++,蓝桥,省赛,KB
来源: https://blog.csdn.net/qq_56871973/article/details/122142586