帥哥,char是單字節的他最大只能到128你給他200,坑定部隊了

解决方案 »

  1.   

    byte 类型的是8各字节的。-----是128所以,凡是大于128得字节型的都不会正确显示
      

  2.   

    各位:
    8个字节的话,最大可以表示的数应该是多少呀??
    我知道char是8位2进制数,也就是说可以表示0~255。所以我不明白各位的128是什么意思?尽管我知道我的在大于127的时候会出错!
      

  3.   

    byte是8位有符號整數,在-128~127之間
    char是16位無符號整數,取值範圍為065535,作為字母數字它與高位置0的ASCII字符一樣
      

  4.   

    Java里的char是16位的,也就是被吹得很神的Unicode,而byte是8位的,它才是相当于我们在C里了解的char。
    String中的使用的是char,也就是16位的,在getBytes的时候,它的转化很有意思,如果是小于128,也就是16位的前8位为0,它就放到一个byte中,因为这么做不会造成任何精度损失,大于128的,如果采用同样的手段就会有问题,所以,放入两个byte中。你可以做一下实验。String的长度和getBytes出来byte数组长度实际上是不相等地。
    这么做实际上是合理的,你可以想一下。如果我们做一个网络传输的例子,一边是Java程序,另一边是C程序,如果每个字节都转成2个byte的话,小于128的势必要被要有高字节为0,而在C程序里0代表着字符串截止,你的处理就会出现问题。
      

  5.   

    部分同意DreamHead(大头) 的意思,我就是java和c传文件,但是一个奇怪的问题是转换出来的字节数最多可以一个java里面的char转换成4个c里面的char型的,也就是说:一个值为128~255的java里面的char字,经过getBytes()之后,会转换成最多4个的byte。但是也不一定,有些时候只有2个,不知道是为什么??那位能解释一下。
      

  6.   

    to: tanghuan() 也许我的表示不太清楚,对于java程序,由于我写的不多,所以不太清楚,故此来问大家,既然你知道,不妨讲清楚,对于网络上字符的传送,我十分清楚,但是对于java中各种类型之间的转换,就不太清楚,请大侠帮忙!
      

  7.   

    不懂,但建议你看看jdk的源码,也许有用