Week1的tips
关于byte b =(byte)128为什么会输出-128
java中整数类型的数据默认都是int类型,所以对b赋值时,会经过一次int转byte类型的操作,即把二进制的int类型数据截取后8位,再将这8位数以补码形式输出.
(int)128: 0000 0000 0000 0000 0000 0000 1000 0000
截取 : 1 000 0000
转成补码(符号位是负数,取反+1): 1 111 1111 -> 1 000 0000
此时,最高符号位是负数,其余位表示0,10000000应当理解为-0
但+0和-0输出都是0,所以为了区分,通常会使用该数据所能表达的最小值代替-0
于是,byte类型的b赋值128会变成-128输出(byte类型的表达范围是:-128~127)
使用Random类产生随机整数
使用方法
//引入 import java.util.Random;
Random random = new Random() ;
int i = random.nextInt(max);//产生大于0,小于(不等于)max的随机整数
为事件添加发生概率
通过随机数+条件选择实现,当产生的随机数在某个区间内,则认为该事件发生了,区间的设置有两种方式
-
规定最大值max,如果产生的随机数在0~max内,则事件发生
例:
在条件1下有10,7%的概率发生事件A,在条件2下有20.23%概率发生事件B.
设置产生0~100的随机浮点数num,如果条件1触发,则设置最大值max为10.7,如果产生的随机数小于10.7,则事件A发生 -
根据要求,把一个整数划分成不同比例的区间
例:
如果条件触发时有10%的概率发生事件A,20%概率发生事件B,70的概率发生事件C
则可以把10划分成,0~1 1~3 3~10,设置产生0-10的随机整数num
如果0<=num<1,则发生事件A
char/int和char/String的转换与输出
在标准输出中char+int=int,‘a’+1和1+'a’都会以int形式输出,即输出98;
String类型的数据可以随意+其他类型的数据;