变量问题

来源:互联网 发布:淘宝在线客服咨询 编辑:程序博客网 时间:2024/05/20 19:09

变量问题:

用变量来操纵内存的方式;

1: int num = 13;//如何解释这句代码?

2: num = -9; //解释这句?         

解释第1行的代码:

1:在赋值号的左边int num;java编译器根据数据类型int,给这个变量在区分配4个字节的内存,但内存中没有初始值;

2:如何操纵这块内存,给这个内存块起一个名字,叫num,那么之后就可以用num来操纵这个内存块;

3:在赋值号的右边,用13这个常量给这个内存块赋值,怎么赋的值,即13以内存中是如何存放的?

首先了解在内存只有0和1

接着了解字节与0和1的关系,一个字节由8个二进位组成,字节byte,位bit

1 byte = 8 bits,0和1都是属于位级别的

比如正整数13,在内存中的存储方式为:

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

0

1

如果在程序中用num获取存储的值时,同样转换为10进制数;

4,用-9来代替原来的值13时,在内存块中是如何存储的?

   对于负整数在内存中的存储方式有点复杂,存储原码和补码之分:

   原码:符号位为最高位,0正1负,则-9的原码:

   100000000000000000000000000000001001

   补码,从原码得到补码的方式是,除去符号位外,每个二进制位取反,之后1

111111111111111111111111111111110111

0 0