c语言编程题 k=a[i]&0x1f是什么意思

如题所述

k=a[i]&0x1f是一个按位与运算,意思是取出a[i]的值的后5位。0x1f是一个十六进制数,表示0001 1111。按位与运算就是把两个数的每一位进行逻辑与操作,如果两个数的同一位都是1,那么结果就是1,否则就是0。例如,如果a[i]的值是255,那么它的二进制表示就是1111 1111,跟0001 1111按位与运算后得到0001 1111,转换成十进制就是31。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-02-08
0x1f就是0001 1111
就是a[i]的值与0001 1111按位相与追问

按位相与是啥意思😳通俗说一下 不好意思我学的不深

追答

就是假设a[i]的值是255,那么化成二进制就是
1111 1111然后跟
0001 1111每一位相与,相与就是两者同时为1就是1,有一个是0都是0
于是最后就得到
0001 1111
十进制就是31了

追问

所以用在这个里面是什么意思啊

追答

看你的题目就是求大写字母对应的字母

A+26就是Z,至于减k就是往前偏移k个字母

本回答被网友采纳
第2个回答  2018-02-08
由&的性质可知道,这是取出a[i]的后5位。追问

跟k啥关系呢