社区
C语言
帖子详情
请编写一个c程序确定signed,unsigned的char,short,int和long变量取值范围
Nlf
2007-03-29 09:20:39
way1:
通过打印标准的头文件中的相应的值来完成
way2:
自行通过计算得到
麻烦谁能给出代码?
...全文
1046
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;
}
确定
分别由
signed
及
un
signed
限定的
char
,
short
,
int
,与
long
类型
变量
的
取值范围
本文详细探讨了在C/C++中,
signed
和
un
signed
限定的
char
,
short
,
int
以及
long
类型
变量
的
取值范围
。内容涵盖了不同类型的位宽、最大值和最小值,帮助开发者更好地理解和使用这些数据类型。 88088901,8065541,Spring Boot Lombok配置与应用详解,['Spring Boot', 'Lombok', '日志', '代码生成', '构建工具']
C语言各数据类型所占字节数和
取值范围
本文详细介绍了C语言中各数据类型在VisualC++32位环境下的字节数和
取值范围
,包括
signed
和
un
signed
的
char
、
short
、
int
、
long
、
long
long
以及浮点型的float、double和
long
double。同时,文章指出这些数值范围可能因编译器而异,并讨论了
int
和
long
在不同环境下的差异。对于超出整型范围的大数处理,建议使用数组保存。此外,还提及了浮点数的精度和
取值范围
受编译系统影响,并提到了头文件float.h和limits.h中关于数值范围的定义。
计算
char
,
short
,
int
,
long
类型
变量
的
取值范围
本文探讨了C语言中不同类型的
变量
(如
char
,
short
,
int
,
long
)的
取值范围
,特别是
signed
与
un
signed
限定符的影响。通过使用
头文件中的预定义宏和位运算来展示如何计算这些范围。
练习2-1
编写
一个
程序
以
确定
分别由
signed
及unsigend限定的
char
short
int
与
long
类型
变量
的
取值范围
本文介绍两种
确定
signed
及
un
signed
限定的
char
,
short
,
int
与
long
类型
变量
取值范围
的方法。一是通过标准头文件limits.h中的预定义宏;二是使用按位运算符计算。这些方法有助于理解不同类型在不同平台上的表现。
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章