求助关于位移运算符
查看原帖
求助关于位移运算符
274209
AzzyZhe楼主2020/10/2 20:33
#include<iostream>
using namespace std;
int main()
{
	int n;
	unsigned long long k;
	cin>>n>>k;                       //64 9223372036854775808
	n--;
	cout<<((1llu<<(n+1))+(~k))<<endl //9223372036854775808
		<<(	              ~k )<<endl //9223372036854775807
		<<( 3llu<< n         )<<endl //9223372036854775808
		<<( 3llu<<(n +1)     )<<endl //3
		<<( 3llu<<(n +2)     )<<endl //6
		<<( 1llu<<(63+1) 	 )<<endl //0
		<<( n+1 )<<endl;             //64
	const int p=64;
	cout<<n<<' '<<(1llu<<n)<<' '<<(1llu<<p)<<endl;//64 1 0
	return 1;
	/*
	...
	*/
}

输入输出如注释 为什么unsigned long long左移变量位似乎会自行取模64,移常量位就不会

2020/10/2 20:33
加载中...