社区
C语言
帖子详情
请编写一个c程序确定signed,unsigned的char,short,int和long变量取值范围
Nlf
2007-03-29 09:20:39
way1:
通过打印标准的头文件中的相应的值来完成
way2:
自行通过计算得到
麻烦谁能给出代码?
...全文
988
3
打赏
收藏
请编写一个c程序确定signed,unsigned的char,short,int和long变量取值范围
way1: 通过打印标准的头文件中的相应的值来完成 way2: 自行通过计算得到 麻烦谁能给出代码?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
晨星
2007-03-29
打赏
举报
回复
#include <limits>
#include <iostream>
using namespace std;
template<typename INT_TYPE>
struct to_int {
typedef INT_TYPE int_type;
};
template<>
struct to_int<signed char> {
typedef signed int int_type;
};
template<>
struct to_int<unsigned char> {
typedef unsigned int int_type;
};
template<typename INT_TYPE>
void print_scope() {
cout << typeid(INT_TYPE).name() << ":\t";
cout << (typename to_int<INT_TYPE>::int_type)numeric_limits<INT_TYPE>::min() << " - "
<< (typename to_int<INT_TYPE>::int_type)numeric_limits<INT_TYPE>::max() << endl;
}
int main() {
print_scope<signed char>();
print_scope<unsigned char>();
print_scope<signed short>();
print_scope<unsigned short>();
print_scope<signed int>();
print_scope<unsigned int>();
print_scope<signed long>();
print_scope<unsigned long>();
return 0;
}
thinkinnight
2007-03-29
打赏
举报
回复
还有,这里使用__int64来存取,否则会溢出
thinkinnight
2007-03-29
打赏
举报
回复
signed int的范围,其他和这个差不多。
way1:
#include <climits>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cout<<INT_MAX<<endl;
cout<<INT_MIN<<endl;
return 0;
}
way2:
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
size_t sz = sizeof(int);
__int64 base = 1;
__int64 range = base<<(sz*8-1); //1位符号位,这里打印出最大值,最小值同理
cout<<range<<endl;
return 0;
}
C++零基础(数据类型)
One 数据类型`运算符和控制结构 基本数据类型 1 布尔型 (以bool表示) 取值只能是fasle(假)或true(真) 2 字符型(以
char
表示) 通常用来存放的ASCII码, 3 整型(以
int
表示) 用
short
来修饰表示短整型 4 实型(单精度浮点型以float表示 `双精度浮点型以double表示)
long
可以用来修饰
int
(表示长整型)和double 5
signed
(有符号) 和
un
signed
(无符号)⊥可以用来修饰
char
型和
int
型(包括
long
int
) ⊥ ⊥ 6 有符号 以二进制补码形式存储,最高位符号0(表示正)和1(负) 7 无符号 只能是整数 在计算机内以绝对值形式存放
char
型和
int
型(包括
long
int
)在默认(不加修饰)情况下是有符号的 常量和符号常量 1 0123表示八进制数123 既(123)8 0x123 123 既(123)16 2 指数0.345E+2表示0.345*10平方,-34.4E-3表示-34.4*10负立方 (e可以大小写) 3 实型常量默认为double型,如果后挚为F(f)则为flont型 4 单引号括起来的
一个
字符a,x ? 等都是字符常量 以\ 开头的字符序列\hh 八进制形式 5
变量
的存储类型 a auto:采用堆栈方式分配内存空间,属于暂时存放,其存储空间可以被数个
变量
多次覆盖使用 b register:存储类:存放在通用寄存器中 c extern :存储类:在所有函数和
程序
段中都可以引用 d static :存储类:在内存中是以固定地址存放的,在整个
程序
运行期间都有效 6
变量
a,想给他起个别名 可以这样写
int
a;
int
&b=a 使得a跟b相同 运算符与表达式 1 %(模运算符) 如 7%4的值为3 2 j=++1 值4 j=1++ 值3 (其中i=3) 3 && 逻辑与 || 逻辑或 ! 逻辑非 4 c>a+b c>(a+b) a>b=c (a>b)=c a==b
编写
一个
程序
确定
signed
和
un
signed
限定的
char
、
short
、
int
与
long
类型
变量
的
取值范围
。
编写
一个
程序
确定
signed
和
un
signed
限定的
char
、
short
、
int
与
long
类型
变量
的
取值范围
。
练习2-1
编写
一个
程序
以
确定
分别由
signed
及unsigend限定的
char
short
int
与
long
类型
变量
的
取值范围
练习2-1
编写
一个
程序
以
确定
分别由
signed
及unsigend限定的
char
short
int
与
long
类型
变量
的
取值范围
方法1 打印标准头文件中的响应值 #include #include //determing ranges of types
int
main() { //
signed
types pr
int
f("
Signed
char
min =
C语音
un
signed
char
,
int
的
取值范围
/* exact-width
signed
int
eger types */ typedef
signed
char
int
8_t; // 范围-128~127 (1 Byte) typedef
signed
short
int
int
16_t; // 范围 -32768 ~...
打印
signed
及
un
signed
限定的
char
short
int
及
long
类型
变量
的
取值范围
有2种方法1是打印标准头文件中的对应值以及直接计算2种方法实现。
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章