黑马程序员技术交流社区

标题: 关于输出打印问题? [打印本页]

作者: 江远云    时间: 2012-3-4 12:32
标题: 关于输出打印问题?
本帖最后由 江远云 于 2012-3-4 12:33 编辑

在基础视频第2天的类型转换时,说老美为了表示生活中的语言,把字母通过数字表示。如97表示a(字母a)。可是案例中用的是‘a’(字符a)输出了解97?
作者: 王亚男    时间: 2012-3-4 13:41
因为强制类型转换嘛,强制char类型的'a'转换为int型。
字符a在ASCII中对应的是数字97,楼上表示超清晰~~~
作者: 胡元    时间: 2012-3-5 03:47
本帖最后由 胡元 于 2012-3-5 03:48 编辑

当a作为字符的时候,表示一个符号,这个符号的表现形式就是字母a,加‘’,打印输出的时候,‘’是功能符号,不用表示,所以字符a强制转换的结果就是字母a的代表数字!
作者: wang耀雨    时间: 2012-3-5 15:17
用我刚刚回的贴来回答你的问题一样合适!!

只要是存在计算机上的数据都是二进制数据(视频、图片、声音等),8个二进制数(0和1)组成一个字节(即二进制数据的基本单位是8位),由于 int   long   short   char   double  float和byte(字节)一样都是数据类型,楼主更规范的说法是说各占多少位,位数多所能表现的数据范围就大,楼上已经说过他们各占多少位我就不再一一道来。
还有 int  test=‘A’+ 'B'    为什么可以这样表示呀?而char =‘a’+'b'怎么不行啊?:所谓计算机上的数据都是二进制数据,字符也不例外,在计算机内存中,被计算机收录的每个字符都有其对应的值,例如010..001——A,
011..001——B……这就构成了编码表ASCii,而每个字符所对应的值就是所谓的 ASCii值,所以在 int  test=‘A’+ 'B'中,由于test是int类型的数据是把A、B当做所对应数值来进行运算的;而char =‘a’+'b'之所以不可以这样运算是因为赋值号左边的变量也是字符类型,而字符与字符不具备运算的规则,但是字符都有相连接的规则,“+”既可以用来数值之间的加法运算,又可以用来连接字符与字符,但是char是单个字符的类型,如果必须要‘a’和'b'相+(连接),则左边的数据类型必须是字符串类型的,即相加后的结果是string类型的“ab”;参考毕老师视频0204到0219进制以及转换!忘采纳




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2