您的位置:首页 > 其它

变量和数制进制之间的相互转换以及八大基本数据类型

2014-11-19 22:41 597 查看
*
变量:
*
它代表了内存里的一块存储区域,这块内存区域的值是可以变化的
*
当变量的值变化时,变的不是以前指向的内存,而是内存的二进制表现形式
* 1、变量的声明格式:
*
变量类型 变量名=变量值;
*
注意:变量可以只声明,不赋值
* 2、变量的创建位置:
*
类体内函数外---全局变量

*
函数内---局部变量
*
静态代码块和构造代码块内的变量也可以看作局部变量
* 3、变量命名时,不要重名,并非必须(涉及内存)
* 4、变量的类型:
*
基本的数据类型
*
对象类型
*
数组
*
内部类--(严格意义上讲,不属于变量类型,但是它的使用和变量很相似)

*
*/
public
class
A_varDemon {
public
static byte

b=1;
public
static void
test(){
b=2;
}
public
static void
main(String[] args){
test();
}
}
*
进制:十进制--89
*
二进制:电信号--两种状态 001001
*
进制转换
*
十进制转二进制
* 17----10001
*
转换方式,将十进制数据除以2,直到0,取余数的反序
*
二进制转十进制
* 1、从右到左,计算每个二进制位的对应的十进制数用
* 2^(n-1)*对应的标记
* 2、将这些数字相加
*
二进制的缺点:不容易表示
*
八进制---将三个二进制位和为一位
*
十六进制---将四个二进制位和为一位
*
十进制和八进制之间的转换:
*
除以8,取余,反序
*
十六进制和十进制转换
*
除以十六去余数
*

*
大进制转小进制,直接除以小进制取余数,反序
*
小进制转大进制,转成十进制,再转相应的进制

*
*/
public
class
A_VarDemon {
//在Java中直接输出八进制和十六进制数字
public
static void
test(){
//直接输出十进制数字
int i=100;
System.out.println("十进制:"+i);
//Java中的八进制数字10,8进制的数以0开头
int j=010;
System.out.println("8进制的010代表的十进制:
"+j);
//Java中的十六进制数字,十六进制以0x开头
int k=0xe;
System.out.println("十六进制0xe代表的十进制:"+k);
}
public
static void
main(String[] args){
test();
}
}

*
二进制的正负数转换
*
二进制的表示形式:分为有符号表现形式和无符号表现形式
*

*
无符号表现形式:只有正数和0,没有负数
*
有符号表示形式:
* 1.包括正数负数和0
* 2.二进制中从左到右的第一位,被解析为标志位,如果是1,代表负数,否则是正数
*

*
变量类型:
*
当声明一个变量类型时候,编译器就会给这个变量分配一个固定长度的内存,比如byte类型--长度是8个二进制位。
*

*
以byte为例,进行正负数转换
* 1.写出正数的表现形式
* 0000 1010
* 2.反码
* 1111 0101
* 3.反码加1,从右到左
* 1111 0110
*

* 14---负数的表现形式
* 0000 1110
* 1111 0001
* 1111 0010
*

*
将二进制正数转换成负数
* 1.1111 0010
* 2.减1
* 1111 0001
* 3.反码
* 0000 1110

*1100
*0111 11
*00011
*10010 17
*/
public
class
B_VarDemon {
public
static byte

b=10;
public
static void
test(){
//调用JDK内置的类,实现十进制转二进制
String str=Integer.toBinaryString(-14);
System.out.println(str);
}
public
static void
main(String[] args){
test();
}
}

*************************
面试题********************************
*
八大基本数据类型
*
整数型:Byte short
int
long
*
浮点型:float double
*
字符型:char
*
布尔型:boolean
*

*
各个数据类型分配的内存空间大小
* byte 8个二进制位
1个字节最大值:127 2^7-1 最小值:-128
2^7
* short 16个二进制位 2个字节最大值:2^15-1
最小值:2^15
* int 32个二进制位 4个字节
* long 64个二进制位 8个字节
*
双精度
* float 32个二进制位 4个字节
* double 64个二进制位 8个字节
* char 16个二进制位---字符---无符号的
* boolean
标记--只有两个值true或false
*

* String===字符串
* 1.重要,最常用
* 2.它不属于基本数据类型--类类型

*
*/

public
class
A_VarDemon {
public
static byte

a=1;
public
static short

b=2;
public
static int

c=3;
public
static long

d=4;
public
static long

d2=100000000000L;
public
static float

e=5.0F;//当小数定义为float类型的时候,在后面必须写一个F或者f;告诉编译器,不要使用默认的数据类型
public
static double

f=0.1;
//第一种赋值
public
static char

g='1';
//第二种赋值
public
static char

g2=100;
public
static boolean

h=true;
public
static void
mian(String[] args){
//在Java中当编写一个常量,由于没有声明常量类型,但系统又要分配一块内存空间,这个内存空间有默认值,整形的默认值是int,浮点型是double型
//所以,声明float类型的数据时,变量值被系统默认为double类型的,因此需要显示的加F或者f后缀,告知编译器不使用默认的分配类型,而long类
//型的声明的数据赋值,如果值大于了int类型的取值范围,那么也需要使用L或l做标记,告知编译器不可以使用默认的int
System.out.println(12);
}

}

packagenet.xadaily.a.var;
public
class
A_VarTest1 {
public
static int

a=34;
public
static int

b=5;
public
static void
test(){
System.out.println("a+b="+(a+b));
System.out.println("a*b="+(a*b));

System.out.println("a-b="+(a-b));
System.out.println("a/b="+(a/b));
System.out.println("a%b="+(a%b));
System.out.println("++a="+(++a));
System.out.println("a--="+(b--));
}
public
static void
main(String[] main){
test();
}

}

输出结果:

a+b=39
a*b=170
a-b=29
a/b=6
a%b=4
++a=35

a--=5

public
class
A_VarTest2{
public
static int

a=22;
public
static int

b=33;
public
static void
test(){
int sum=0;
for(int i=1;i<=a;i++)
{
switch(i){
case 22: System.out.println("循环结束");break;
}
sum=sum+a;
}
System.out.println("22个a="+sum);
int j=0;
while(j<b)
j++;
System.out.println("j="+j);

}
public
static void
testif(){
if(a>b)
System.out.println("a大于b");
else
System.out.println("a小于b");
}
public
static void
main(String[] args){
test();
testif();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: