我开个jbuilder试试先,刚才想去java网站找关于int的资料,没有找到,
还是自己试试,再答你。
还是自己试试,再答你。
解决方案 »
- Netty使用问题,大神请进,谢谢!
- 关于synchronized和assert
- 麻烦问大家个问题,这个代码怎样修改才能实现想要的功能?
- 序列化文件
- 在一个TextArae中如何得到当前光标的坐标!
- 基本问题:如何监控键盘输入! 请各位高手给予援手,谢谢,十分感谢~~~
- 单立模式的问题,实例化怎么这么麻烦呢
- 新来的,来报个道,希望大家多帮帮; )
- 我下载了 Java Communication API(javax.comm) ,其中有个dll不知道怎么让虚拟机载入,请高手指点(分不够再加)
- java里如何对写内容到word文件?
- 下载tomcat后,如何安装,设置?
- 下载运行的Applet保存在计算机什么地方? 在线,立即给分
int 是32位的,即8位16进制0xFFFFFFE=0x0FFFFFFE, F=1111 0=0000前3次移动后第一位仍然是0,
第4次第一位变1,变成0xFFFFFFE0 成为负数负数用补码表述,即正数取反+1
32 = 0000....0010 0000 = 0x00000020
~32 = 1111....1101 1111 = 0xFFFFFFDF
~32+1= 1111....1110 0000 = 0xFFFFFFE0
class MultByTwo {
public static void main(String args[]) {
int i;
int num = 0xFFFFFFE; for (i = 0; i < 4; i++) {
num = num << 1;
System.out.println(num);
System.out.println(" " + Integer.toHexString(num));-->我加了这句话
}
}
}
答案是
536870908
1ffffffc
1073741816
3ffffff8
2147483632
7ffffff0
-32
ffffffe0
那样就很简单了,因为int的正数是从 0-0x7FFFFFE;
负数是从0xFFFFFFfe -0x80000000
0x00000000( 0) - 0x7FFFFFFF 正数