二进制基础-java

转载来源

转换

十进制转换为其他进制,采用“除余法”,要转换的书a除以目标进制x,每一级生成的余数逆序拼接起来就是转换为目标进制的表示方式:![这里写图片描述](https://img-blog.csdn.net/20171018131037055?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmVpcmR1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

二进制运算

7中基本运算类型:
7中基本运算类型


  • 按位与&:两位全是1,结果才为1;(1.清零指定位;2.取指定位):这里写图片描述

  • 按位与 |:只要有一位为1,则结果为1;(1.对指定位置1)这里写图片描述

  • 异或运算 ^:对应位不同,则结果位为1;(与111相异或,翻转对应位(与111……相异或两次,则值恢复原状),与0相异或,值不改变;交换两个变量值最快的方式:A=A^B;B=A^B;A=A^B)这里写图片描述这里写图片描述

  • 取反 ~,1变0,0变1;

  • 左移运算 <<:左边丢弃,右边补0:如果丢弃位(高位)没有1,则每移动一位相应的二进制表现为乘2;

  • 右移运算>>:负数左补1,正数左补0,右边丢弃;若丢弃位没有1,则每右移一位,则操作数除以2;

  • 无符号右移>>>:左边空位0填充,右边位被丢弃

重点:负数用正数的补码形式表示
- 原码:整数其绝对值对应的二进制数称为原码;
- 反码:将原码的每一位取反,则称为原二进制数的反码;一个数的原码和反码互为反码
- 补码反码加1,则为原二进制数的补码;
由上可知求二进制负数对应的数时

给一个最高位(32)为1的二进制形式负数;
    1.二进制数减1,取得原数的反码;
    2.反码取反,得到原数的原码;
    3.求出原码的值,取负即为原数的十进制形式;

java中的进制

  1. 八种基本类型和对应的包装器类:这里写图片描述

  2. 小端格式和大端格式(Little-Endian&Big-Endian解释)

little-endian法将int转换为字节
示例:little-endian:低位存放在低地址
  int x=8243;
  byte [] bytes=new byte[4];

  bytes[0]=(byte)(x>>0*8&0xff);//0xff是1111 1111,一个字节,8bit(位)的最大值
  bytes[1]=(byte)(x>>1*8&0xff);
  bytes[2]=(byte)(x>>2*8&0xff);
  bytes[3]=(byte)(x>>3*8&0xff);

3.java中八、十六进制的表示:八进制前置0,十六进制前置‘0x’或者‘0X’;

4.java中将二进制转换为2、8、16进制的相应函数:Integer.toBinaryString(x); Integer.toOctalString(x); Integer.toHexString(x);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值