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

二进制基础

难度入门
时长50分
学习人数
综合评分9.03
614人评价 查看评价
9.4 内容实用
8.9 简洁易懂
8.8 逻辑清晰
  • 4-1 JDK,内置进制的转换。 //十进制转成其他进制 System.out.println(Integer.toHexString(112)); //转成十六进制,结果是70 System.out.println(Integer.toOctalString(112)); //转成八进制,结果是160 System.out.println(Integer.toBinaryString(10)); //转换成二进制,结果是1010 //其他进制转换为十进制 System.out.println(Integer.parseInt("1000", 2)); //1*2^(4-1) + 0*2^(3-1) + 0*2^(2-1) + 0*2^(1-1) = 8 System.out.println(Integer.parseInt("33", 8)); //3*8(2-1)+3*8^(1-1)=27 System.out.println(Integer.parseInt("A8", 16)); //10*16^(2-1)+8*16^(1-1)=168
    查看全部
    1 采集 收起 来源:进制转换

    2018-03-22

  • Integer.toHexString(int i) 十进制转成十六进制 Integer.toOctalString(int i) 十进制转成八进制 Integer.toBinaryString(int i) 十进制转成二进制 Integer.valueOf("FFFF",16).toString() 十六进制转成十进制 Integer.valueOf("376",8).toString() 八进制转成十进制 Integer.valueOf("0101",2).toString() 二进制转成十进制 Integer.parseInt("0101",2)/("76",8)/("FA3",16)
    查看全部
  • 中国的甲骨文
    查看全部
  • 唉,java坚持到现在,估计得去做前端了。暂时搁置这个路线了。这个笔记也没写完整。。。 二进制运算: 一、按位与 & 参与运算的两个数都是1,返回1,否则返回0. 它的特性决定两个特殊用法: 1、清零,将要清零的数与各位都是0的数进行按位与,返回肯定是0,达到清零目的 2、获取一个数中指定位,例:设X=10101110,取X的低4位,用X & 00001111 =00001110即可得到。利用的特性是0、1跟1进行按位与运算,结果都是本身。 二、按位或 | 只要有一个为1,结果就为1 特殊用法: 置1:想要将一个数某些位置为1,只需要将这个数与,对应位为1的数进行按位或运算。要置0,我们用与0进行按位与实现 //按位与 & (两位全为1 结果才是1,其他结果为0:0&0=0 0&1=0 1&0=0 1&1=1) System.out.println(10 & 4);//结果:0 1010 & 0100 = 0000(0) //按位或 | (只要有一个为1,结果就为1:0|0=0 0|1=1 1|0=1 1|1=1) System.out.println(22|10);//结果:30 10110 | 01010 = 11110(30) //异或运算 ^ (对象不同则为1,相同则为0:0^0=0 0^1=1 1^0=1 1^1=0) System.out.println(51 ^ 5);//结果:54 110011 ^ 000101 = 110110(54)
    查看全部
    1 采集 收起 来源:位运算

    2018-03-22

  • 负数 以其正值的补码形式表示, 原码:一个整数按照绝对值大小转换成二进制数称为原码. 反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码. 补码:反码加1称为补码.
    查看全部
    1 采集 收起 来源:位运算

    2017-02-05

  • http://www.cnblogs.com/think-in-java/p/5527389.html byte不一定需要 & 0xff。而是byte类型转换为int类型,希望保证低8bit数据一致,高24bit为0时要 & 0xff。 其实是从数字类型扩展到较宽的类型(向上转型)时,补零扩展还是补符号位扩展。 这是因为Java中只有有符号数,当byte扩展到short, int时,即正数都一样,因为符号位是0,所以无论如何都是补零扩展;但负数补零扩展和按符号位扩展结果完全不同。 补符号数,原数值不变。 补零时,相当于把有符号数看成无符号数,比如-127 = 0x81,看成无符号数就是129, 256 + (- 127) 对于有符号数,从小扩展大时,需要用 & 0xff这样方式来确保是按补零扩展。 而向下转型处理,符号位自动无效,所以不用处理。 在byte向int扩展的时候,自动转型是按符号位扩展的,这样子能保证十进制的数值不会变化,而&0xff是补0扩展的,这样子能保证二进制存储的一致性,但是十进制数值已经发生变化了。也就是说按符号位扩展能保证十进制数值不变,补0扩展能保证二进制存储不会变。而正数可以说是既按符号位扩展,又是补0扩展,所以在二进制存储和十进制数值上都能保证一致。
    查看全部
    1 采集 收起 来源:java中的进制

    2018-03-22

  • 字符串 ---> 字节数组 String s; byte[] bs = s.getBytes([encode]);//encode指编码方式,可选 字节数组 ---> 字符串 byte[] bs = new byte[int];//创建一个长度为int的字节数组 String s = new String(bs);或 String s = new String(bs,encode);//encode指编码方式 "gb2312,utf-8"
    查看全部
    1 采集 收起 来源:java中的进制

    2018-03-22

  • 二进制的位运算
    查看全部
    1 采集 收起 来源:位运算

    2016-12-05

  • 学完 要动点脑和手 不过还是学会理解了
    查看全部
    1 采集 收起 来源:位运算

    2016-12-03

  • 字节数组转化为int
    查看全部
    1 采集 收起 来源:java中的进制

    2016-10-27

  • Java中数据类型
    查看全部
    1 采集 收起 来源:java中的进制

    2016-10-26

  • 2333~~~
    查看全部
  • (一)按位与& 特殊运输 (1)清零,如果想将一个单元清零,即使其全部二进制位为0,只要与一个各位都是零的数值相与,结果为零。 (2)取一个数中指定位:找一个数,对应x要取的位,该数的对应位为1,其余位为零,此数与x进行“与运算”可以得到x中的指定为 (二)按位或| 特殊用法 常用来对一个数据的某些位置1:找到一个数,对应x要置1的位,该数的对应位为1,其余位为零。此数与x相或可使x中的某些位置1。 (三)异或^ 特殊用法 (1)使特定位翻转:特定位异或1 (2)与0相异或,保留原值 (3)两个变量交换值 1.借助第三个变量来实现 2.利用加减法实现两个变量的交换 A=A+B;B=A-B;B=A=B 3.异或运算 一个数异或本身等于0和异或运算符合交换律 A=A^B;B=A^B;A=A^B (四)取反与运算~ 对一个二进制数按位取反,即将0变为1,1变0 (五)左移<< 将一个运算对象的各二进制位全部左移若干位, (六)右移>> 将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。操作数每右移一位,相当于该数除以2 (七)无符号右移运算>>> 各个位向右移指定的位数。右移后左边空出的位用零来填充。移除右边的位被丢弃。 负数以其正数的补码形式表示 反码加1称为补码 32位整数,最高位为1,就是负数 负数 左移或者右移
    查看全部
    1 采集 收起 来源:位运算

    2018-03-22

  • 位运算的几个应用: 1) 判断int型变量a是奇数还是偶数 a&1 = 0 偶数 a&1 = 1 奇数 2) 取int型变量a的第k位 (k=0,1,2……sizeof(int)),即a>>k&1 (先右移再与1) 3) 将int型变量a的第k位清0,即a=a&~(1<<k) (10000 取反后为00001 ) 4) 将int型变量a的第k位置1,即a=a(1<<k) 5) int型变量循环左移k次,即a=a<<ka>>16-k (设sizeof(int)=16) 6) int型变量a循环右移k次,即a=a>>ka<<16-k (设sizeof(int)=16) 7)对于一个数 x >= 0,判断是不是2的幂。 boolean power2(int x){return ( (x&(x-1))==0) && (x!=0);} (8)不用temp交换两个整数 void swap(int x , int y) {x ^= y;y ^= x;x ^= y;} (9)计算绝对值 int abs( int x ){int y ;y = x >> 31 ; return (x^y)-y ; //or: (x+y)^y } 10)取模运算转化成位运算 (在不产生溢出的情况下) a % (2^n) 等价于 a & (2^n - 1) 11)乘法运算转化成位运算 (在不产生溢出的情况下) a * (2^n) 等价于 a<< n 12)除法运算转化成位运算 (在不产生溢出的情况下) a / (2^n) 等价于 a>> n 例: 12/8 == 12>>3 13) a % 2 等价于 a & 1 14) if (x == a) x= b; else x= a; 等价于 x= a ^ b ^ x; 15) x 的 相反数 表示为 (~x+1) 16)输入2的n次方:1 << 19 17)乘除2的倍数:千万不要用乘除法,非常拖效率。只要知道左移1位就是乘以2,右移1位就是除以2就行了。比如要算25 * 4,用25 << 2就好啦
    查看全部
    1 采集 收起 来源:java中的进制

    2018-03-22

  • 位运算威力:http://blog.csdn.net/iukey/article/details/7195265 大小端详解:http://blog.csdn.net/zhaoshuzhaoshu/article/details/37600857
    查看全部
    1 采集 收起 来源:java中的进制

    2016-09-11

举报

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

微信扫码,参与3人拼团

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

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