第二个表达式!bool ? num: ch 中的条件表达式 !bool 的结果是 false , 但是由于表达式2是一个整型变量 num,而不是字符变量,所以输出的是整数 0。这是因为在 Java里,将字符类型隐式转换为整数类型时,会使用字符的 ASCII 值作为整数的值。 如有帮助给个采纳谢谢
java的强制类型转换,最基础的东西呀
不知道你这个问题是否已经解决, 如果还没有解决的话:世界上虽然有各种各样的字符,但计算机发明之初没有考虑那么 多,基本上只考虑了美国的需求。美国大概只需要128个字符,所以就 规定了128个字符的二进制表示方法。这个方法是一个标准,称为ASCII 编码,全称是American Standard Code for Information Interchange,即美 国信息互换标准代码。
128个字符用7位刚好可以表示,计算机存储的最小单位是byte,即 8位,ASCII码中最高位设置为0,用剩下的7位表示字符。这7位可以看 作数字0~127,ASCII码规定了从0~127的每个数字代表什么含义。
我们先来看数字32~126的含义,如图2-1所示,除了中文之外,我 们平常用的字符基本都涵盖了,键盘上的字符大部分也都涵盖了。
数字32~126表示的字符都是可打印字符,0~31和127表示一些不 可以打印的字符,这些字符一般用于控制目的,这些字符中大部分都是 不常用的,表2-4列出了其中相对常用的字符。
ASCII码对美国是够用了,但对其他国家而言却是不够的,于是, 各个国家的各种计算机厂商就发明了各种各种的编码方式以表示自己国 家的字符,为了保持与ASCII码的兼容性,一般都是将最高位设置为1。 也就是说,当最高位为0时,表示ASCII码,当为1时就是各个国家自己 的字符。在这些扩展的编码中,在西欧国家中流行的是ISO 8859-1和 Windows-1252,在中国是GB2312、GBK、GB18030和Big5,我们逐个 介绍这些编码。