C++中int型128转入char型变量c中
来源:互联网 发布:中国有嘻哈冠军知乎 编辑:程序博客网 时间:2024/05/16 11:56
《C++程序设计原理与实践》Bjarne Stroustrup著 第47页程序。
#include <iostream>
using namespace std;
int main()
{
double d=0;
while(cin>>d){
int i=d;
char c=i;
int i2=c;
cout<<"d=="<<d<<"\n"
<<"i=="<<i<<"\n"
<<"i2=="<<i2<<"\n"
<<"char("<<c<<")"<<endl;
}
return 0;
}
第一个问题:int型128为什么能转为char型的128?此程序,第10行,执行 “char c=i;”时,当,i值为128时,仍能输出ASCII码为128的字符(在Windows7系统中,用Borland C++ 5.5 for Win32)。
但是,int占4个字节,在转化为char型时只保留最底1个字节的值,而char的取值在-128~127之间。我认为程序只能输出0~127之间的ASCII码字符,而不能输出ASCII码为128的字符。
也就是说,int型数据转为char型时,只能转换0~127之间的值。为何,i值为128时,仍能输出ASCII码为128的字符?
第二个问题:从类型间转换看:int型128补码为:0000 0000 0000 0000 0000 0000 1000 0000【补】转化为char型截取低8位:1000 0000【补】。到这里又出现问题,1000 0000【补】表示的数值是128?还是-0?
#include <iostream>
using namespace std;
int main()
{
double d=0;
while(cin>>d){
int i=d;
char c=i;
int i2=c;
cout<<"d=="<<d<<"\n"
<<"i=="<<i<<"\n"
<<"i2=="<<i2<<"\n"
<<"char("<<c<<")"<<endl;
}
return 0;
}
第一个问题:int型128为什么能转为char型的128?此程序,第10行,执行 “char c=i;”时,当,i值为128时,仍能输出ASCII码为128的字符(在Windows7系统中,用Borland C++ 5.5 for Win32)。
但是,int占4个字节,在转化为char型时只保留最底1个字节的值,而char的取值在-128~127之间。我认为程序只能输出0~127之间的ASCII码字符,而不能输出ASCII码为128的字符。
也就是说,int型数据转为char型时,只能转换0~127之间的值。为何,i值为128时,仍能输出ASCII码为128的字符?
第二个问题:从类型间转换看:int型128补码为:0000 0000 0000 0000 0000 0000 1000 0000【补】转化为char型截取低8位:1000 0000【补】。到这里又出现问题,1000 0000【补】表示的数值是128?还是-0?
0 0
- C++中int型128转入char型变量c中
- C语言中char int转换问题
- C语言中char int转换问题
- C语言中char转换成int
- C语言中char int转换问题
- C语言中char int转换问题
- C语言中char int转换问题
- C语言中char int转换问题
- C语言中char int转换问题
- C语言中char int转换问题
- 关于C语言中 int型变量和unsigned int变量范围之间的关系
- C++中char和int型变量的一点心得
- C++中char和int型变量的一点心得
- C++中char和int型变量的一点心得
- c语言中:int main(int argc, char* argv[])
- C语言中int main(int argc,char* argv[])详解
- C语言中char变量详解
- C语言中char变量详解
- 信息抽取
- 操作系统之处理机管理
- shell脚本---源自网站“神算子”:www.wangsenfeng.com
- shell介绍--源自网站“神算子”:www.wangsenfeng.com
- 一颗初心,慢煮岁月(最美文字)
- C++中int型128转入char型变量c中
- shell小节--源自网站“神算子”:www.wangsenfeng.com
- 10.1训练赛--2014上海区域赛--- World Cup**
- swap--源自网站“神算子”:www.wangsenfeng.com
- Java之也谈sleep()和wait()
- vi 显示行号-----源自网站“神算子”:www.wangsenfeng.com
- window7使用eclipse环境本地运行MapReduce程序方法-----源自网站“神算子”:www.wangsenfeng.com
- iOS编程-------UIScrollView / UIPageControl
- window7使用eclipse提交Hadoop作业到Hadoop集群运行方法