HM008 整型四宽度

HM008 整型四宽度

HM008 整型四宽度

来源: 第 8 集 数据类型-整型

难度: 入门

时间限制: 1s

空间限制: 64MB

题目描述

创建变量或常量时必须指定数据类型,才能分配一段合适的内存,避免空间浪费。能表示整数的类型有四种:short(短整型)、int(整型)、long(长整型)、long long(长长整型)。它们的差别就是占用空间不同,因而取值范围不同:空间越大,能表示的整数范围越广。

按宽度约定的有符号范围是:

  • 按 \(2\) 字节算:\(-2^{15}\) 到 \(2^{15}-1\),即 \(-32768\) 到 \(32767\)。
  • 按 \(4\) 字节算:\(-2^{31}\) 到 \(2^{31}-1\),即 \(-2147483648\) 到 \(2147483647\)。
  • 按 \(8\) 字节算:\(-2^{63}\) 到 \(2^{63}-1\)。

long 的宽度和平台有关:

  • 平台 W(常见 Windows):longint 同宽,都按 \(4\) 字节范围计算。
  • 平台 L(64 位 Linux):longlong long 同宽,都按 \(8\) 字节范围计算。

short 永远最窄,long long 在两种平台上都按 \(8\) 字节。日常开发没有特殊情况时,优先用 int 就足够了。

本题**不输出字节数**,只判断一个整数能不能放进指定类型。超出范围视为不能装下,不要依赖溢出回绕(例如把 \(32768\) 放进 short 是不合法的)。

输入格式

第一行一个字符 \(p\)(WL),表示平台。

第二行一个整数 \(T\)(\(1 \le T \le 100\))。

接下来 \(T\) 行,每行一个类型名和一个整数 \(x\)(\(x\) 在 long long 可表示范围内)。类型名只会出现 shortintlonglonglong

输出格式

对每个询问输出一行 YesNo

样例

输入 #1

W
5
short 32767
short 32768
int 32768
long 2147483648
longlong 2147483648

输出 #1

Yes
No
Yes
No
Yes

输入 #2

L
4
short -32768
int -2147483648
long 2147483648
longlong -1

输出 #2

Yes
Yes
Yes
Yes

说明

\(32768 = 2^{15}\),刚好超出 short 上界。平台 Wlongint 范围相同,所以 \(2147483648\) 放不进 Wlong,但放得进 Llong。不要输出 \(2\)、\(4\)、\(8\) 这类字节数。

信息

ID
1007
难度
(无)
分类
(无)
标签
(无)
递交数
0
已通过
0
通过率
?
上传者