在看到Vector类中有这么一句:
int num=b-'0';
v.addElement(new Integer(num));
其中Vector v=new Vector();
请教int num=b-'0';是什么意思?

解决方案 »

  1.   

     在JAVA中,字符也是用整形来记录的。‘b'=98,'0'=30.
    所以int   num=b- '0 ';就相当于int   num=98- 30;
      

  2.   

    int num = 'b' - '0';
      

  3.   

    int num = 'b' - '0';
      

  4.   

    'b '=98, '0 '=30. 
    int num=b-'0 ';相当于int num=98-30;
      

  5.   

    你应该把基本类型的转换再恶补一下.
    INT+(BYTE,CHAR+SHORT)=INT
      

  6.   

    应该是int   num   =   'b '   -   '0 '; 表示98-   30
      

  7.   

    我不知道楼上的有没有认真运行过int num=b-'0';这个表达式.在java中采用的是Unicode 表进行字符编码,所以b=98,
    0=48,如果是'b'-'0'则等于50,如果是b-'0',则等于98.这是java中最基本的类型转换,为什么大家都说'0'等于30呢??你们真的检查过吗??真的在电脑上运行过并得出'0'等于30的结果吗?我到目前为此没碰到过任何'0'等于30的情况.学习要塌实点!!
      

  8.   

     '0' = 0x30
    也就是wuchunzhi说的十进制的48
    int   num=b- '0 '; 在java中相当于 int num = b - 48;
      

  9.   

    楼上的各位,人家是int num = b - '0 ';而不是 int num = 'b' - '0';int num = b - '0 '; 这样b做一般来,b的范围只能是'0'~'9',否则就没有意义了,
    这样可以把字符类型的转为int类型。
      

  10.   

    两种可能:
    1. b是前面已经声明的整型或字符型变量
    2. LZ看到的题目有误,或贴上来时出错了,这里应该是'b'弄清这个后,才好说强制类型转换~
      

  11.   

    上google搜啊 google上的答案:System.in.read()方法从键盘输入的时候是返回的是字符的ASCII码. 
    int num=b-'0';如果这里不是这样,而是int num=b;那么输出的是字符5的ASCII码53,所以要减去字符0的ASCII码48,才能得到5。
    好象不涉及到类型转换吧 b本来就是int型的。。
      

  12.   

    这里的b应该是一个变量,前面应该定义了这个b的值,如int b=0; 这个例子是张孝祥的教程里的一个例子!