unsigned用法小介绍
最近又看到几篇题解,似乎都用到了unsigned int和unsigned long long。作为一名正规的蒟蒻,我决定认真学习一下unsigned的用法,并在此分享一下个人经验。
一、unsigned的意思
好吧,没什么好说的,还是上百度看看吧。 unsigned—百度百科
二、定义方式
基本上每一种数据类型都有unsigned的类型(常见的有int,long long等),格式如下:
unsigned typename name;
如:
unsigned int a;
unsigned long long b;
这样就可以了。
三、输入输出
可直接用cin&cout
unsigned int a;
unsigned long long b;
cin>>a>>b;
cout<<a<<' '<<b;
爱用scanf&printf的童鞋要将%d改为%u(unsigned long long 要改为%llu)
unsigned int a;
unsigned long long b;
scanf("%u%llu",&a,&b);
printf("%u %llu",a,b);
四、数据范围
带unsigned的数据类型与signed的所占用的空间是一样的,但unsigned类型不可存放负数。这是因为unsigned其实是将signed的负数空间部分加在了非负数空间上,如:
- 普通int可存-2147483648(-2^31)至2147483647(2^31-1)间的整数
- unsigned int可存0至4294967295(2^32-1)间的整数
所以,当题目中只有非负整数的数据时,unsigned是一个很好的选择。
PS:嫌unsigned太长了?你可以用define!
#define ui unsigned int
ui a;
附带define-百度百科
THE END(撒花)