java的位运算相关问题

有这么一个表达式:x是8位的byte类型数据

(x >> 4) & 0xF,

这个是不是说,把x的低4位舍掉(右移),然后把高4位变成低4位,取这个低4位的值?(更直接的就是取x的高4位)

如果是这样的话,Character.forDigit((x >> 4) & 0xF , 16)又是什么意思呢?

将x >> 4) & 0xF按照16进制转换为十进制