JAVA 的进制的转换,源码,反码和补码

方法 Method,function
java的方法是一段用来完成特定功能的代码片段
定义成方法后,复用特别特别方便
方法的输入时参数列表(方法名后面括号里的,形参),输出是返回值
return 返回方法需要的值,并结束方法的运行
java中的方法传递只有 值传递,没有引用传递

1.任何进制到十进制的转换
156 = 1*10^2+5*10^1+3*10^0=156
0b1101 = 1*2^3+1*2^2+0*2^1+1*2^0=13
0764 = 7*8^2+6*8^1+4*8^0=500
0xb4 = 11*16^1+4*16^0=180
2.其他进制到10进制的转换
binary:除2取余数,逆序输出
octal:除8取余数,逆序输出
hexadecimal:除16取余数,逆序输出
binary 78 = 78/2=余0,39/2=余1,19/2=余1,9/2=余1,4/2余0,2/2余0,1/2=0余1,
逆序输出=1001110
octal 78 = 78/8=余6,9/8=余1,1/8=0余1;
逆序输出116
hexadecimal 78 = 78/16=4余14,4/16=0余4
逆序输出4e ,除不开余本身
3.八进制转二进制
规则:一个8进制表示成3个二进制位,3个二进制位合成一个进制位
101010 转8,101=5,010=2,8进制数=52;
63转 2进制,110=6,011=3,110011
十六进制和二进制的转换
规则:一个十六进制表示称为4个二进制,4个二进制位合成一个十六进制
0xd7 转2进制,13=1101,7=0111,二进制11010111
机器码——原码——反码——补码
机器码:
最高位为符号位,其他位为数值位
10: 0000 1010 -10: 1000 1010
计算机并不是用原码来表示数据的
缺点:1,原码有+0和-0的区分,0000 0000 1000 0000
2. 如果考虑符号位参与运算,那么在设计CPU的时候会复杂很多
反码:
规则: 正数,和原码和反码一致
负数,在原码的基础上,符号位不变,其他0变1,1变0取反
EG: 10: 0000 1010 反码 0000 1010
-10: 1000 1010 反码 1111 0101
补码:
规则:正数,三码合一,不变
负数,先求原码,然后反码,最后+1
-10: 1111 0101 +1 1111 0110
-1: 1111 1110 +1 1111 1111
补码的补码就是原码
递归算法详解
自己调用自己就是递归;
递归结构包括两个部分:
定义递归头:什么时候不调用自身方法
定义递归体:什么时候需要调用自身方法
递归说白了就是一个if else循环

猜你喜欢

转载自blog.csdn.net/weixin_42157147/article/details/80348629