专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C语言

强制类型转换解决方法

发布时间:2011-06-28 16:15:49 文章来源:www.iduyao.cn 采编人员:星星草
强制类型转换
C/C++ code

int main(void)
{
    int n = 10;
    char ch[10];

        n >>= 1;
    for (int i = 0; i < 10; i++)
        ch[i] = (1 & n) + '0';

    for (i = 0; i < 10; i++)
        printf("%c ", ch[i]);
    putchar('\n');

    return 0;
}



有点不明白ch[i] = (1 & n) + '0';这里的'0'启到了的是一个可以自动转换成字符的形式,但不不加'0',我要的是强制转换,我写这样ch[i] = (char)(1 & n);为什么不行啊。不也是强制转换吗?

------解决方案--------------------
显示出来的字符和数字所两码事, 24, “24” 是两个不同的概念, 24 是个整体, 而“24”是一个序列。 通用 你应该先相加在转换就是一个结果了。
(char)((1 & n) + ‘0’)
------解决方案--------------------
ch[i] = (1 & n) + '0';这里的'0'启到了的是一个可以自动转换成字符的形式,

首先这一行代码不是强制类型转换,是一个数字加上 '0' 的ASC码,就变成了对应的字符

ch[i] = (char)(1 & n); 

这个是强制类型转换,并不能将数字转换为对应的字符
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: