| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1056 人关注过本帖
标题:小白求教,这个的输出结果为啥会是10
只看楼主 加入收藏
tigerball
Rank: 2
等 级:论坛游民
帖 子:58
专家分:32
注 册:2013-6-10
结帖率:80%
收藏
已结贴  问题点数:4 回复次数:8 
小白求教,这个的输出结果为啥会是10
程序代码:
public class Conversion
{
    public static void main(String [] args)
    {
        byte b;
        int i=266;
        b=(byte)i;
        System.out.println("byte to int is"+" "+b);
    }
}


java小白,正在看书,不明白这个为啥输出的是10?
搜索更多相关主题的帖子: java 
2014-01-03 15:19
gmh0421
Rank: 4
等 级:业余侠客
威 望:2
帖 子:58
专家分:215
注 册:2013-10-22
收藏
得分:2 
byte 的范围是-128 --127.
把int i放到byte b里面,266从0开始越过127然后从-128开始,就是10(当然要算上0)
127+128+1+10 = 266
不知道这么解释能否明白

本人纯属菜鸟,如有不当,请各位大虾指正
希望能在不断的学习中,提高水平
2014-01-03 16:55
tigerball
Rank: 2
等 级:论坛游民
帖 子:58
专家分:32
注 册:2013-6-10
收藏
得分:0 
回复 2楼 gmh0421
还是不太明白呢。

为什么先从0越过,然后又从-128开始?
2014-01-03 17:03
tigerball
Rank: 2
等 级:论坛游民
帖 子:58
专家分:32
注 册:2013-6-10
收藏
得分:0 
自顶啊
2014-01-04 21:01
qq705570553
Rank: 1
等 级:新手上路
帖 子:9
专家分:9
注 册:2014-1-3
收藏
得分:2 
会了,麻烦你把合并做一下在https://bbs.bccn.net/thread-426064-1-1.html
2014-01-05 20:08
gmh0421
Rank: 4
等 级:业余侠客
威 望:2
帖 子:58
专家分:215
注 册:2013-10-22
收藏
得分:0 
是从0开始加,加到上限127,然后再从下限-128开始加,最后的值就是10

本人纯属菜鸟,如有不当,请各位大虾指正
希望能在不断的学习中,提高水平
2014-01-06 08:56
qq705570553
Rank: 1
等 级:新手上路
帖 子:9
专家分:9
注 册:2014-1-3
收藏
得分:0 
-128-127
一直加1;
顺序为:
    0    1    2    3    4    5    6    7    8    9    10    11    12    13    14    15    16    17    18    19    20    21    22    23    24    25    26    27    28    29    30    31    32    33    34    35    36    37    38    39    40    41    42    43    44    45    46    47    48    49    50    51    52    53    54    55    56    57    58    59    60    61    62    63    64    65    66    67    68    69    70    71    72    73    74    75    76    77    78    79    80    81    82    83    84    85    86    87    88    89    90    91    92    93    94    95    96    97    98    99    100    101    102    103    104    105    106    107    108    109    110    111    112    113    114    115    116    117    118    119    120    121    122    123    124    125    126    127    -128    -127    -126    -125    -124    -123    -122    -121    -120    -119    -118    -117    -116    -115    -114    -113    -112    -111    -110    -109    -108    -107    -106    -105    -104    -103    -102    -101    -100    -99    -98    -97    -96    -95    -94    -93    -92    -91    -90    -89    -88    -87    -86    -85    -84    -83    -82    -81    -80    -79    -78    -77    -76    -75    -74    -73    -72    -71    -70    -69    -68    -67    -66    -65    -64    -63    -62    -61    -60    -59    -58    -57    -56    -55    -54    -53    -52    -51    -50    -49    -48    -47    -46    -45    -44    -43    -42    -41    -40    -39    -38    -37    -36    -35    -34    -33    -32    -31    -30    -29    -28    -27    -26    -25    -24    -23    -22    -21    -20    -19    -18    -17    -16    -15    -14    -13    -12    -11    -10    -9    -8    -7    -6    -5    -4    -3    -2    -1    0    1    2    3    4    5    6    7    8    9    10
纯手打,辛苦啊,其实逗你玩的,用循环解决的

[ 本帖最后由 qq705570553 于 2014-1-6 22:59 编辑 ]
2014-01-06 22:57
SeanBaby
Rank: 2
等 级:论坛游民
帖 子:3
专家分:32
注 册:2014-1-7
收藏
得分:2 
回复 楼主 tigerball
266的二进制是1 0000 1010 一共9位
将int型的266强制转换为byte型(8位),会有溢出,所以(byte)266的二进制应该是0000 1010:将第一位去掉了。
所以 是10了!
2014-01-07 23:02
独行之
Rank: 2
等 级:论坛游民
帖 子:60
专家分:30
注 册:2007-6-19
收藏
得分:0 
楼上正解
2014-01-19 17:29
快速回复:小白求教,这个的输出结果为啥会是10
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024643 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved