为了账号安全,请及时绑定邮箱和手机立即绑定

二进制基础

难度入门
时长50分
学习人数
综合评分9.03
614人评价 查看评价
9.4 内容实用
8.9 简洁易懂
8.8 逻辑清晰
  • public class Convert{
    public static byte[] int2Bytes(int id){
    byte[] arr=new byte[4];
    /**arr[0]=(byte)((int)(id>>0*8)&0xff);
    arr[1]=(byte)((int)(id>>1*8)&0xff);
    arr[2]=(byte)((int)(id>>2*8)&0xff);
    arr[3]=(byte)((int)(id>>3*8)&0xff);*/
    for(int i;i<arr.length;i++){
    arr[i]=(byte)((int)(id>>i*8)&0xff);}
    return arr;}
    //转化byte[]为int
    public static int byte2Int(byte[] arr){
    /**
    int rs0=(int)((arr[0]&0xff)<<0*8);
    int rs1=(int)((arr[1]&0xff)<<1*8);
    int rs2=(int)((arr[2]&0xff)<<2*8);
    int rs3=(int)((arr[3]&0xff)<<3*8);*/
    int result=0;
    for(int i;i<arr.length;i++){
    result+=(int)((arr[i]&0xff)<<i*8);}
    //return rs0+rs1+rs2+rs3;
    return result;}
    //long转化为byte[]
    public static byte[] long2Bytes(int id){
    byte[] arr=new byte[8];
    for(int i;i<arr.length;i++){
    arr[i]=(byte)((int)(id>>i*8)&0xff);}
    return arr;}
    //转化byte[]为long
    public static int byte2Long(byte[] arr){
    int result=0;
    for(int i;i<arr.length;i++){
    result+=(long)((arr[i]&0xff)<<i*8);}
    //return rs0+rs1+rs2+rs3;
    return result;}
    public static void main(String[]args){
    byte []arr=Convert.int2Bytes(8143);
    System.out.println(arr);
    System.out.println(Conert.bytes2Int(arr));
    //字符串与字节数组
    String describe="我每天都练功,我天下无敌...";
    byte[] barr=describe.getBytes();
    String des=new String(barr);
    System.out.println(des);}}


    查看全部
    1 采集 收起 来源:java中的进制

    2018-07-30

  • public class RadixMain{
    public static void main(String[]args){
    //十进制转为其他进制
    System.out,println(Integer.toBinaryString(112));//二进制
    System.out.println(Integer.toHexString(112));//十六进制
    System.out.println(Integer.toOctalString(112));//八进制
    //其他进制转化为十进制
    System.out.println(Integer.parseInt("111001",2));//二进制
    System.out.println(Integer.parseInt("27",8));//八进制
    System.out.println(Integer.parseInt("A8",16));//十六进制
    }}


    查看全部
  • 求负数的十进制

    补码减1得反码

    反码取反得到原码

    计算正值

    取相反数

    查看全部
    0 采集 收起 来源:位运算

    2018-07-30

    1. 按位与&

      两位全为一,结果才为1

      0&0=0;0&1=0;1&0=0;1&1=1;

      用法:清零,如果想要将一个单元清零,即使其全部二进制位0,只要与一个各位都为零的数值相与,结果位零

      取一个数中指定位,找一个数,对应X要取的位,该数的对应位为1,其余为零,此数与X进行“与运算”可以得到X中的指定位

    2. 按位或|

      只要有一个为1,结果就为1

      0|0=0;1|0=1;0|1=1;1|1=1;

      用法:常用来对一个数据的某些位置设为1,找到一个数,对应X要设置为1的位,该数的对应位为1,其余位为零,此数与X想与可使X中某些位设置为1

    3. 异或运算^

      两个相应位为“异”(值不同),则改位结果为1,否则为0

      0^0=0;0^1=1;1^0=1;1^1=0;

      用法:使特定位翻转 找一个数,对应X要翻转的各位,该数的对应位为1,其余位为0,此数与X对应位异或即可

      与0相异或,保留原值

    4. 取反运算~

      对一个二进制数按位取反,即将0变1,1变0

      ~1=0;~0=1;

    查看全部
    0 采集 收起 来源:位运算

    2018-07-29

  • 字符串转化字节
    查看全部
    0 采集 收起 来源:java中的进制

    2018-07-28

  • 大小端法:
    查看全部
    0 采集 收起 来源:java中的进制

    2018-07-28

  • 数据类型转化字节
    查看全部
    0 采集 收起 来源:java中的进制

    2018-07-28

  • 0xFF 是计算机十六进制的表示: 0x就是代表十六进制,A B C D E F  分别代表10 11 12 13 14 15   F就是15  一个F 代表4位二进制:可以看做 是   8  4  2  1。

    0xFF的二进制表示就是:1111 1111。   高24位补0:0000 0000 0000 0000 0000 0000 1111 1111;


    查看全部
    1 采集 收起 来源:java中的进制

    2018-07-28

  • 负数以其正值的补码形式表示

    查看全部
    0 采集 收起 来源:位运算

    2018-07-28

  • 原码、反码、补码

    查看全部
    0 采集 收起 来源:位运算

    2018-07-28

  • 无符号有移运算 >>


    查看全部
    0 采集 收起 来源:位运算

    2018-07-28

  • 右移运算>>
    查看全部
    0 采集 收起 来源:位运算

    2018-07-28

  • 左移运算

    11(1011)

    在java中,整型是32位的,所以符合高位不包含1(00000000 00000000 00000000 1011)

    查看全部
    0 采集 收起 来源:位运算

    2018-07-28

  • 异或运算^

    两个变量交换值的方法

    A=A^B;

    B=A^B=(A^B)^B=A^(B^B)=A^0=A;

    A=A^B=(A^B)^A=(A^A)^B=0^B=B;

    原理:利用一个数异或本身等于9和异或运算符合交换率


    查看全部
    0 采集 收起 来源:位运算

    2018-07-28

  • 异或运算的特殊用途

    (1)使特定位翻转

    (2)与0相异或,保留原值

    查看全部
    0 采集 收起 来源:位运算

    2018-07-28

举报

0/150
提交
取消
课程须知
小伙伴们注意啦!~本门课程前三章的内容可以零基础学习。第四、五章的内容在学习前需要了解Java的基础知识。
老师告诉你能学到什么?
通过课程的学习,您可以了解二进制的由来,掌握二进制和其他进制之间进行进制转换的方法,掌握如何进行位运算,为所有计算机课程的学习提供基础。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!