C++中的int和char之间的转换问题
我以前就认为是这样的,比如inta;charb;a=(int)b;b=(char)a;可是这样转换出来的是错误的,何解啊;我知道char转换为int的可以这样a=b-'0...
我以前就认为是这样的,比如
int a;
char b;
a=(int)b;
b=(char)a;
可是这样转换出来的是错误的,何解啊;
我知道char转换为int的可以这样 a=b-'0';
还有其他的方法互相转换.
如果告诉我转化的机理那更好了,肯定加分 展开
int a;
char b;
a=(int)b;
b=(char)a;
可是这样转换出来的是错误的,何解啊;
我知道char转换为int的可以这样 a=b-'0';
还有其他的方法互相转换.
如果告诉我转化的机理那更好了,肯定加分 展开
9个回答
展开全部
a=b-'0' 得到的数字是 0和b 两个字母的机器代码的差别, 不是数学意义上的数字.
另外int是两个byte, char是一个. 也无法直接转换.
想转换字母和数字的话你可以试试系统程式 cTOi() 和 iTOc()
另外int是两个byte, char是一个. 也无法直接转换.
想转换字母和数字的话你可以试试系统程式 cTOi() 和 iTOc()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在C++中,int转换为char称为隐式转换,char转换为int称为显式转换。隐式转换可直接转换,显示转换则要强制性转换,故b=a,可直接赋值,强制性转换则要指明转换类型,如:a=(int)b;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
转换其实是对应的ASCII码来显示的。比如char c=‘A’; int i= c;
那么i=65;是A对应的ASCII码。又比如 c = char(65);那么c就是A;
那么i=65;是A对应的ASCII码。又比如 c = char(65);那么c就是A;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接赋值即可,无须转换。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询