java里可以写short型常量吗? 就是给short型变量赋值, 我不想用强转.short s = (short)1; //有没有写整型常量的办法?像C里的 1s 一样? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【binarier】截止到2008-07-10 16:46:41的历史汇总数据(不包括此帖):发帖的总数量:1 发帖的总分数:100 每贴平均分数:100 回帖的总数量:1 得分贴总数量:0 回帖的得分率:0% 结贴的总数量:0 结贴的总分数:0 无满意结贴数:0 无满意结贴分:0 未结的帖子数:1 未结的总分数:100 结贴的百分比:0.00 % 结分的百分比:0.00 % 无满意结贴率:---------------------无满意结分率:---------------------如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html 你直接写 short s=1;不会有错啊。你干什么要强转? 直接short s=1;就行.如果你以后再对s进行操作就要强换了. 不用强转的吧!就算是和int double 做运算也没关系.比如 short i = 1;int b = i+1;//他自己就自动类型转换成int了如果和byte 做运算你就得强转了~! 在short范围之内的不用强转,超出了就需要。 short s = 1;就这么用就行了啊 楼主的问题是:java里可以写short型常量吗? 怎么感觉问题描述和常量无关? -32768 ~ 32767short s = x; 就行否则short s = (short) x; 参照官方的JVM语言规范中说法,Java语言的整数计算只有32位精度和64位精度两种,如果涉及long的计算会扩展到64位,否则至少也用32位精度所以即使你定义short是16位精度,只要进行任何操作,都会强转成int的32位精度所以short变量在Java语言里基本不使用,没有什么意义!更细粒度的就直接用8位的byte了! 首先:我们来说明short s=(short)1;在内存中,jvm首先将1当作int类型来处理,当赋给s的时候,在内存中是从高位到低位的,所以截取1所占前面字节赋给s。 其次:如果是显示调用short的话,即时数据很大也不会有问题。数据过大而不用short就会溢出,直接编译不过。 没有 C 中的 1s 这种用法,没必要。再有,看上去像是强转,实际并不是,看一看 JVM 指令便知。 在short和int的共同范围内,转换时可以不用强制,这是叫扩展转换。但将超出short范围的int类型转换为short时,需要一定的强制,这时候叫窄化转换 各位高手请进 一个超级难题 请求指导,如何将String里面的数字筛选出来返回一个数组? java 求最短路径 如何判断文本文件的编码 读取pdf并显示在JFrame 请告诉俺哪错了 几个初学的小问题 TOMCAT的配置问题,请高手指点一下,在线等待 Jbuilder 7的Serial Number & Key? 实例 求解 java String StringBuilder 底层原理? Frame鼠标点击异常 反射invoke参数转型问题
楼主【binarier】截止到2008-07-10 16:46:41的历史汇总数据(不包括此帖):
发帖的总数量:1 发帖的总分数:100 每贴平均分数:100
回帖的总数量:1 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:0 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:1 未结的总分数:100
结贴的百分比:0.00 % 结分的百分比:0.00 %
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
short i = 1;
int b = i+1;//他自己就自动类型转换成int了
如果和byte 做运算你就得强转了~!
就这么用就行了啊
怎么感觉问题描述和常量无关?
short s = x; 就行否则
short s = (short) x;
首先:我们来说明short s=(short)1;在内存中,jvm首先将1当作int类型来处理,当赋给s的时候,在内存中是从高位到低位的,所以截取1所占前面字节赋给s。
其次:如果是显示调用short的话,即时数据很大也不会有问题。数据过大而不用short就会溢出,直接编译不过。
没有 C 中的 1s 这种用法,没必要。再有,看上去像是强转,实际并不是,看一看 JVM 指令便知。
但将超出short范围的int类型转换为short时,需要一定的强制,这时候叫窄化转换