java基础之进制详解,进制(程序员的基本功)。

java基础之进制详解:

一、进制介绍:对于整数,有四种表示方式;
1.二进制:0,1,满2进1,以0b或0B开头。
2.十进制:0-9,满10进1,
3.八进制:0-7,满8进1,以数字0开头表示,
4.十六进制:0-9及A(10)-F(15),满16进1,以0X或0x开头表示,此处的A-F不区分大小写。
二、进制的转换:
第一组:
1.二进制转十进制:
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和。
0b1011 = 1*2的(1-1)次方 + 1* 2的(2-1)次方 + 0 * 2的(3-1)次方 + 1*2的(4-1)次方 = 1+2+0+8=11
2.八进制转十进制:
规则:从最低位开始(右边)开始,将每个位上的数提取出来,乘以8的(位数-1)次方,然后求和。
0234 = 4*8的(1-1)次方+3*8的(2-1)次方+2*8的(3-1)次方 + 0*8的(4-1)次方 = 156;
3.十六进制转十进制:
规则:从最低位开始(右边)开始,将每个位上的数提取出来,乘以16的(位数-1)次方,然后求和。
0x23A = 10 * 16的(1-1)次方 + 3*16的(2-1)次方 + 2*16的(3-1)次方 = 570;
第二组:
1.十进制转换成二进制:
规则:将该书不断除以2,知道商为0为止,然后将每步的得到的余数倒过来,就是对应的二进制。
34 转成二进制 = 0b00100010
2.十进制转换成八进制:
规则:将该书不断除以8,知道商为0为止,然后将每步的得到的余数倒过来,就是对应的二进制。
131 转换成八进制 = 0203
3.十进制转换成十六进制:
规则:将该书不断除以16,知道商为0为止,然后将每步的得到的余数倒过来,就是对应的二进制。
237转换成十六进制 = 0xED
第三组:
1.二进制转换成八进制:
规则:从低位开始,将二进制数每三位一组,转成对应的八进制数即可
0b110100101 =>0325;
2.二进制转换成十六进制:
规则:从低位开始,将二进制数每四位一组,转成对应的八进制数即可
0b11010101 =>0xD5;
第四组:
1.八进制转换成二进制:
规则:将八进制数每一位,转成对应的一个3位的二进制数即可;
0237 转成二进制  0b010011111;
2.十六进制转换成二进制:
规则:将八进制数每一位,转成对应的一个3位的二进制数即可;
0x2(0010)3(0011)B(1011) =>0b001000111011;
三、二进制在运算中的说明:
1.二进制是逢2进位的进位制,0,1是基本算符;
2.现代的电子计算机技术全部采用的是二进制,因为它只是用0,1两个符号,非常简单方便,易于电子方式实现,计算机内部处理的信息,都是采用二进制数来表示的。二进制(Binarry)数用0和1两个数字机器组合来表示任何数,进位规则是“逢二进1”,数字1在不同的微商代表不同的值,按从右至左的次序,这个值以二倍递增。
四、原码、反码、补码
对于有符号的而言:
1.二进制的最高位(最左边)是符号位:0表示正数,1表示负数;
2.正数的原码、反码、补码都一样(三码合一);
3.负数的反码=它的原码符号位不变,其他位数取反;
4.负数的补码=它的反码+1,负数的反码 = 负数的补码 - 1;
5.0的反码,补码都是0;
6.java没有无符号数,也就是说java中的数都是有符号的;
7.在计算机运算的时候,都是以补码的方式来运算的。
8.当我们看运算结果的时候,要看它的原码。
五、位运算符:
java中有七个位运算符(&、|、^、~、>>、<<、>>>),分别是按位与&,按位或|,按位异或
1.运算规则:
(1)按位与&:两位全为1,结果为1,否则为0;
(2)按位或|:两位有一个为1,结果为1,否则为0;
(3)按位异或^:两位一个为0,一个为1,结果为1,否则为0;
(4)按位取反~:0 ->1 , 1->0
(5)算数右移>>:低位溢出,符号位不变,并用符号位补溢出的高位;
(6)算数左移<<:符号位不变,低位补0;
(7)逻辑右移>>>: 低位溢出,高位补0;
(8)无>>>运算符。

每日金句分享:让你变好的事情,过程都不是轻松的!

猜你喜欢

转载自blog.csdn.net/m0_52271574/article/details/121388150