java的学习之数据类型转换

数据类型转换

1.对于编程来说,无非是两个部分:数据加算法。所谓数据,就是由数据类型和数据值构成的,int i = 10.所谓算法:就是程序中的方法,或者说是在C中函数。method。对于方法(或函数),其构成也很简单:返回值类型 方法名(参数列表)
2.参数列表的形式:数据类型 变量名。
3.声明一个变量:数据类型 变量名。

  int value = 0int add(int value1,int value2)。

数据类型:是为了要给方法(或函数)提供计算的基本单元。

int add(int value1,int value2){
    int sum = value1 + value2;//位运算同样可以实现
    return sum;
}

方法(或函数):对程序中的数据值进行计算。
算法:要对数据进行计算的。
程序:最终是要有个结果的,是对数据的处理。

int value1 = 10;
int value2 = 20;
add (value1,value2);

写程序的步骤:
第一步:定义变量
定义变量的时候,考虑:
1.变量的类型(实际上已经考虑了变量的取值范围,数据该是什么样子的)。
2.变量的名称(驼峰命名法:变量名的第一个单词的首字母小写,其后的单词的首字母都要大写。如:appleNum.)
3.变量的具体的值?(程序员不要考虑具体的值是多少,一般情况下是用户给的)
第二步:定义方法
定义方法的时候,考虑:
1.该方法的作用是什么,他要做什么事情(比如:做加法)?他要对那些数据类型提供计算能力(是计算计算整形数据之和)?
2.考虑要处理的数据有多少个?
3.计算完以后,该返回一个什么样的结果?(比如小数和整数相加,最后要返回小数或整数?)
4.考虑方法(或函数)内部该怎么设计?
在java中,我们需要多考虑的一点是:要考虑权限修饰,也就是说,方法是否对外公开的,是给谁用的,不同的使用场景有不同的使用权限。public就是公开的,private就是私有的,只能在该类中被访问。protected?
public private protected default 访问权限弄清楚。

访问修饰同一个类中同一个包中不同包的子类中不同包的非子类中
private可以
default可以可以
protected可以可以可以
public可以可以可以可以

四个访问修饰符的权限由上自下依次加宽。

第三步:将变量的值传入方法中,自动计算,这个过程叫做方法的调用

int num = 12:
12的二进制是多少?
00001100
12+12=24
0000 1100左移一位
最高位丢了,最高位是0,0001100_
最低位补0:00011000—>16+8==24
12+3?
0000 1100—>12
0000 0011—>3
0000 1111—>15 异或
异或:1^0 = 1 1^1=0 0^0=0
&&逻辑与
&按位与
||逻辑或
|按位或

逻辑与:_1&&_2 要求条件1和条件2同时为真时方为真,
if(a>0&&b<10)eg.a=0,b=5得到的结果是假

int a=5;
int b=10;
int c=0;
if((a>5)&&(c=b)>5){//短路与:只要第一个条件为假,后面的条件程序不执行
短路或:||只要第一个条件为真,后面的条件也就不会看了

}
print( c )…>c的值是多少?
if((a>5)&(c=b)>5){//按位与:每一个条件都会检查,不管第一个条件是否为假,如果为假,也会计算第二个条件

}
print( c )——>c的值是多少?10
java中有多少种数据类型:
大类:基础数据类型和引用类型
基础数据类型8种
byte(1) short(2) int(4) long(8) double(8) float(4) Boolean(1bit) char(2)
byte–>short–>int–>long…
上述类型转换叫做自动类型转换。
强制类型转换

public class Happy  
{
	public static void main(String[] args) 
	{
		int iNum = 127;
		byte bNum = iNum;
		System.out.println(bNum);
	}
}

运行测试
在这里插入图片描述

public class Happy  
{
	public static void main(String[] args) 
	{
		int iNum = 127;
		byte bNum = (byte)iNum;
		System.out.println(bNum);
	}
}

在这里插入图片描述
128
0000 0000
1000 0000
128+256 = 384

public class Happy  
{
	public static void main(String[] args) 
	{
		int iNum = 384;
		byte bNum = (byte)iNum;
		System.out.println(bNum);
	}
}

在这里插入图片描述

数据在计算机中是以补码的形式存在。
正数:原码,反码补码都一样。
负数的补码:首先求负数的原码,然后对补码求反码:符号位不变,其他位按位求反,也就是1变成0,0变成1.求补码:反码加一。
计算机中存储的补码
384
00000000 00000000 00000001 10000000
这是一个正数,他在内存中以补码的形势存在
转byte:1Byte
10000000 这一串值是补码
求原码,因为输出的是原码
补码: 10000000
先求反码:10000000-1=11111111
原码:10000000—>-128

public class Happy  
{
	public static void main(String[] args) 
	{
		int iNum = 200;
		byte bNum = (byte)iNum;
		System.out.println(bNum);
	}
}//强制类型转换的精度会造成损失

在这里插入图片描述

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值