这两天在写一个加密算法,遇到点问题,希望大家能给点帮助,多谢了。
在java当中,如果想定义一个16进制的数,比如 int i = 0xff ; 这样写是没有问题的,但是如果写成 byte i = 0xff; 就必须要加上强制类型转换 (byte)0xff 才能通过编译,但是发生了溢出现象,jvm认为0xff是个负数,结果导致计算的时候出现很多为题,比如数组下表越界等,请问下这个问题应该如何解决?多谢!!
在java当中,如果想定义一个16进制的数,比如 int i = 0xff ; 这样写是没有问题的,但是如果写成 byte i = 0xff; 就必须要加上强制类型转换 (byte)0xff 才能通过编译,但是发生了溢出现象,jvm认为0xff是个负数,结果导致计算的时候出现很多为题,比如数组下表越界等,请问下这个问题应该如何解决?多谢!!
解决方案 »
- 文件小问题,大虾们帮忙哈!~~
- 在Java中实现Windows中的右键菜单的复制操作
- java中 什么情况下无public类可正常运行程序
- jspsmartupload.jar 谁有这个包?
- JAVA的进程监控
- 关于播放音乐的问题?很菜的问题!
- 这个程序的问题出在哪?
- 谁有Together for Jbuilder 6.0的license??
- java中的数据库结果集可以被赋值吗,可以通过结果集的方法来更新数据库字段吗?
- JAVA插入数据库的一个中文问题!!特急,谢谢各位了
- onload=setInterval('window.status="help me"',1)请教!
- 安装完myeclipse后,发现没有执行文件,这是怎么回事?
16进制数oxff有效数是8位的,尚在int的正整数范围内,所以能正常显示,但已经超出了byte的正整数范围,所以会显示为负数(-1)。如果byte不能满足你的要求,建议你换用更大位的数据类型,例如char或short。
char:16位无符号整数。
short 16位无符号整数。