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的负数空间部分加在了非负数空间上,如:

所以,当题目中只有非负整数的数据时,unsigned是一个很好的选择。

PS:嫌unsigned太长了?你可以用define!

#define ui unsigned int
ui a;

附带define-百度百科

THE END(撒花