动手动脑

Posted zql98

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动手动脑相关的知识,希望对你有一定的参考价值。

一.【类型转换】

技术分享图片

 

 

—>无精度损失

--à有精度损失

Byte 1字节   -27次方到27次方-1

short 2字节  -215次方到215次方-1

int 4字节    -231次方到231次方-1

long 8 字节  -263次方到263次方-1

float 4字节   3.402823e+38 ~ 1.401298e-45
double 8
字节  1.797693e+308~ 4.9000000e-324

char 2字节

结论:一个字节占8位数,字节数越多则表示数的范围更大。

二.【代码运行】

技术分享图片

 

 

无论是单精度,还是双精度在存储中都分为三个部分,符号位:0代表正,1代表负;指数位:存储二进制科学记数法的指数数据,并且采用移位存储;尾数部分:存储二进制科学记数法中小数点后数据。

Float:

技术分享图片

 

 

Double

技术分享图片

 

 

如8.25,用二进制科学记数法表示为:1.0001*2^3;

指数可正可负,而8位的指数范围是-127~128,所以采用移位存储,即元数据+127

 

由于存储方式的原因,在进行加减运算时会出现误差,即十进制转为二进制是可能会有数据丢弃,再转为十进制时,可能就不会出现原数据。

三.【代码运行】

int X=100;

              int Y=200;

              System.out.println("X+Y="+X+Y);

              System.out.println(X+Y+"=X+Y");

运行结果:

x+y=300

300=x+y

1.先输出“x+y=”这个字符串str1然后运行“+”将x代表的值和str1组合成str2“x+y=100”,然后运行“+”,将y代表的值和str2组合成新的字符串str3“x+y=300”,然后输出。

2.由于x+y 不是字符串所以先计算出结果“300”将“300”作为字符串srt1,然后运行“+”和“=x+y”组合成新的字符串str2“300=x+y”,然后输出。

四.【原码,反码,补码】

  • ·原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。
  • ·反码的表示方法是:正数的反码是其本身;负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。
  • ·补码的表示方法是:正数的补码就是其本身;负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1。 (即在反码的基础上+1)
  • 技术分享图片

     

 

 


以上是关于动手动脑的主要内容,如果未能解决你的问题,请参考以下文章

动手动脑-4

动手动脑,无法自拔

方法的动手动脑

第三次实验及动手动脑

第八周动手动脑

动手动脑,第六次Tutorial——数组