java进制的转换

                                 ------------  android培训,java培训java学习型技术博客、期待与您交流! ------------

1.我们熟悉的都是十进制怎么把十进制转化成二进制呢?

可以通过 带转化数除以二取余   例如:5 是十进制 把它转化成二进制   5/2余1     2/2余0   最后 1/2 余 1   所以5的二进制就是  101

注意:写余数的时候一定要从右往左写(也就是第一次处于2取余的数字放在最右边)

例如     11的二进制           11/2 余1     5/2余1     2/2余0         1/2  余1          所以11的二进制是  1011   

            55的二进制            55/2 余1     22/2余0       11/2余  1      5/2余1     2/2余0         1/2  余1      所以55的二进制是 10111

(在jdk的API中Integer类中的toBinaryString方法可以把十进制的数字转化成二进制

例如: System.out.println(Integer.toBinaryString(5));将会输出101

2怎样把二进制转化成十进制呢?

把二进制转化成十进制更方便还用说上面的5 二进制作例子吧 前面我们知道了5的二进制是101那么怎么把101转化成十进制的5呢?

  1 0  1    从右向左 第一位是 2的零次幂    第二位是  2的一次幂     第三位是2的二次幂   以此类推 那么

  101    的十进  就是 1*2的零次幂  等于1 +0*2的二次幂+1*2的二次幂   最终     是    5

110001 的十进制  是 1 *2的0次幂+0*2的1次幂+0*2的2次幂+0*2的3次幂+1*2的4次幂+1*2的5次幂    最终加起来是    49

(小技巧)二进制数从右向左由第一位开始是 1  第二位是2   第三位是 4  以此类推     。。。。。 8   16    32    64    128 等

那么 01010101的十进制就是  从右开始 1*1+0*2+1*4+0*8+1*16+0*32+1*64+0*128 =85

3.把二进制转化成八进制

任何数除于8余数都不会大于8  因此我们可以把二进制分成三个数一组(从右向左)例如 10001011101 可以这样划分   010   001   011  101   (左边不够三位我们可以补0)

这样就好计算了 三个看成一个整体从右向左分别是1 2  4  这样就二进制数就010  001   011  101  变成八进制就是 2    1   3    5   八进制前面都是用0来表示  02135   就是一个八进制的数 。

例:  010 011 100 101 001 变成八进制 是 2  3 4  5  1  (用八进制表示就是023451)

4.把二进制 转化成十六进制

十六进制的表示是用0x(0-9   A-F)任何数除于16余数都会小于16 所也可以把 二进制的数字四个分成一组  然后利用同上面的方法 8  4  2  1来计算

例如:10011001100转化成十六进制 先分组(不齐的用0补) 0100 1100 1100 然后就可以计算了 右边第一组为 12   第二组为12  第三组为4 那么表示成十六进制就是0x4CC

(把十进制转化成八进制可以先转化成二进制也可以用jdk的API中Integer类中的toOctalString方法可以把十进制的数字转化成八进制

(把十进制转化成十六进制同样可以先转化成二进制再转换成十六进制也可以用jdk的API中Integer类中的toHexString方法可以把十进制的数字转化成十六进制

5.负数的二进制表现形式

负数的表现形式就是二进制的表现形式取反然后加1

例如  -7

(7)二进制表现为  00000000  00000000  00000000 00000111

取反就是把0变成1    111111111  111111111  11111111    11111000

然后加1   变成            111111111  111111111  11111111    11111001

所以-7 表现成二进制就是     111111111  111111111  11111111    11111001 

                                      ------------  android培训,java培训java学习型技术博客、期待与您交流! ------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值