问答详情
源自:4-1 字节流之文件输入流FileInputStream-1

0xf为什么是1

0xf为什么是1

提问者:神亿般的存在 2018-04-07 18:05

个回答

  • 老丶斑鸠
    2019-01-02 16:44:54

    0x 是十六进制的前缀表示, f 表示 16进制的  值 15 ,0xf 就是表示十六进制的f, 十六进制即 0123456789abcdef ,小于 f 自然只有一位,所以补0   

  • Chitose
    2018-04-07 21:58:52

    0xff是指16进制的255 即二进制中的 1111 1111,而不是1。

    课程里说的>>>(>>>是无符号右移,左边全部补0)和& 0xff(& 是 按位与操作,如101&001 = 001)的操作是为了取int值的各个部分的8位。

    实际上只需要>>>即可,而& 一个0xff实际上得到当前最后的八位的原值(因为与了一个全是1的),同时消除了前面多余的位数。

    例如:

    0000,0000,0000,0011想要取高八位即(0000,0000),先进行一次>>>8(右移8位,补0)得到

    0000,0000,0000,0000(斜的0是新补上去的),然后再用他和0xff,即

    1111,1111进行 与 运算,那么就能得到

    0000,0000(把斜的0全部去掉了)