经过几天的学习,对JAVA的几个数据类型、转换以及二进制数有了更多的了解。
同时也搜索了网上很多的资料和视频,发现有一些内容都只是讲了结果却没有讲过程,对于特别死脑筋的我也是各种钻牛角尖,这里把一些心得写下来。
首先使用char类型数据,通过循环语句将Unicode码0-127位写下。
for (int i=0;i<=127;i++) {
System.out.println((char)i+":"+i);
}
常用转义符表达
\n 回车
\t 制表符
\ 斜杠
\‘ 单引号
\” 双引号
\4e2d unicode码对应的中文
boolean类型数据表达式
boolean a;
a=65>=60;
System.out.println(“65分通过考试:”+a);
a=50>=60;
System.out.println(“50分通过考试:”+a);
}
其次是开始比较让我迷茫的二进制原码、补码的转换
首先明确
每一个十进制数都有对应的二进制码,此二进制码是给人类看的。
因为电脑中存储及计算数据是通过十进制数的二进制码的补码进行。
例如:1、十进制数字2,其二进制数为0010,在电脑中储存及计算是通过其补码0010来进行;
2、十进制数字-1,其二进制数为1111,在电脑中储存及计算是通过其补码1001来进行;
可以发现
正数的补码=正数本身
负数的补码=符号位不变,其余位取反后+1
*可得补码=原码取反+1;原码取反=补码-1;
在网上搜索时,发现已知补码求原码中,是对补码取反+1,明显违背了这个等式:补码-1之后再取反,为此我钻牛角尖花费不少时间;后来经过计算及实践一些案例发现:
*取反+1 = 减一后再取反 ;因此两者是相同的!!!
那么已知补码求原码的数值方法:
例如,已知补码10000001,求原数值
对该补码求补码 :符号位1,其余取反后+1:11111111(此为原码)
数值计算:原数值=2^6+2^5+2^4+2^3+2^2+2^1+2^0=127
因其符号位为1,因此是负数,最终结果为-127

被折叠的 条评论
为什么被折叠?



