二进制:0b
十进制:没有前缀
八进制:0
十六进制:0x
calc
查看---》科学计算器
八进制,十进制,十六进制的由来:
系数*基数^权
其他进制到十进制的转换
系数*基数^权
0b10101=1*2^4+1*2^2+1*2^0=16+4+1=21
0123=8^2+2*8+3=83
0x3c=3*16+c=60
2^10之内必须熟记。
十进制到其它进制:
除基取余,直到商为0,余数反转。
十进制 十进制
12345 12345
20 10100
把52分别转换成二进制,八进制,十进制
52,0b1101000,064,0x34
快速的进制转换 二进制转换成十进制
8421码,是bcd码的一种。
他表达的意思是每一个二进制位上的数据是一个固定的值
只需要把对应的1的位置的数值相加,即可得到该二进制对应的十进制的值
11111111
128,64,32,16,8,4,2,1
100=
问题:任意x进制到y进制的转换。
x进制---十进制
十进制---y进制
二进制到八进制,16进制
0b1011001--->八进制
有符号数据的表示法:
重点:源码,反码,补码
在计算机中数据的运算使用补码做的。
我准备用源码,反码,补码来分别表示+7和-7
首先我们得到7的二进制:111
源码:
正数的源码最高位是0.
负数的源码最高位是1.
其他是数值为。
符号位+数值位
+7
-7
最大的不同时符号位不同
00000111
10000111
反码:
正数的反码与源码相同
负数的反码与源码符号位不变,数值为取反,就是
1变0,0变1
+7 0 0000111
-7 1 1111000
补码:
正数的补码与源码相同,负数的补码是在反码的基础上加1
符号位 数值为
+7 0 0000111
-7 1 1111001
正数的源反补都相同。
1:一直某数据x的源码位10110100b
源码:1 0110100b
1 1001011
1 1001100
补码: 1 1101110b
1 11011 01
1 0010010
变量的组成规则:
a.必须对其进行限定,限定符
b.其值是可以在一定范围内发生改变的,不可能拿内存进行比较,所以要定义变量名。
c:初始化值。如果没有值。这个空间就是个垃圾没有意义。
基本数据类型:4类8中
a:正数
byte 1 2^8 -128到-127
short 2
int 4
long 8,数值没超过int数值的时候不用加L,大了的货加L
b:浮点数
float 4
double 8
c:字符
char 2
d:布尔
bloon 1
变量想加和长量想加的区别?
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
变量是在运行期间才会确定。
常量是直接附值。
byte的范围是-128到127
byte b=130;
byte b=(byte) 130;
a.计算机数据的运算都是补码进行运算的,而要获得补码,首先得计算出数据的二进制。
130,正数的原码,反码,补码都相同
00000000 00000000 00000000 10000010
b.做截取操作,截成byte类型的了。
1 000 0010
这个结果是补码
c:已知补码求原码.计算机上看到的都是原码。
1 0000010
1 0000001
1 1111110
-126
System.out.println('a');
System.out.println('a'+1);
通过字符和一个正数想加,得到一张表:ASCII码表
记住三个值:
'a' 97
'A' 65
'0' 48
字符串参与运算:
System.out.println("hello"+'a'+1); System.out.println('a'+1+"hello");
helloa1
98hello
字符串数据和其它数据想加+,结果是字符串类型。自左到右想加。
常量:
6中类型:字符串,正数,小数,字符,布尔,null.
|
|