本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议 》和 《 阿里云开发者社区知识产权保护指引 》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单 进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。 这段代码中 "0x{0:x}", 0xf8 & 0x3f是我不是很理解的,于是请教师傅,上网查,得到一点收获,现在与大家分享一下。
首先,这段代码设计到二进制与十六进制的转换,其次,还涉及到“与”的问题。
0x{0:x}表示把 0xf8 &0x3f相“与”的结果打印出来,是以十六进制的格式打印,不满8为就补0.
那么f表示什么呢?用二进制表示就是1111转换为十进制等于15,所以f8用二进制表示为1111 1000,而3f二进制则为0011 1000

说到“与”,就想把逻辑关系都说一下。


至于他们中间的运算符各自代表的 含义,可以自己查一下。那么现在我们用到的是“与”,所以对f8和3f中相对应的位置进行“与”判断得到下面的结果:0011 1000转换为二进制为38.