面试题总结——位的一些东西
2012-04-04 22:56
190 查看
今天看了下《编程之美》,正好看到将帅问题,将答案看完后,感觉,去微软这帮人果然很猛,而且发现,面试题老喜欢搞一些bit级运算的东东,所以就总结一下,以备不时只需。希望也能帮到看的人。
现在大家都喜欢在位上搞点文章,从最简单的移位运算比乘2快,到进阶的bit map法解决大数据量问题;从高层的bitset封装类逐个位图法排序,到底层编程的CPU大小端,感觉面试,能在bit上做文章的东西真的不少。
首先,位运算的一些面试题可以参考http://www.chinazk.com/bbs/dispbbs.asp?BoardID=109&ID=34801,非常详细的说明了各种位运算可能会考到的地方,需要注意的两点:
1、C语言提供的6个按位运算只能对整型操作数,即只能用在char、short、int和long类型
2、位运算符的优先级低于==和!=,测试时,记得加上()
然后,是编程之美提到的将帅问题(详情可以百度),看了微软提供的三种解法,自己拿到题,首先想到的是直接两层for循环,不过引入了2个int型,不符合题目要求,只有1字节空间,哪怕循环中我用unsigned char控制(为什么是unsigned呢,),也要2字节啊,根据解法一提示,首先想到了bitset,虽然对于bitset的操作会稍微麻烦不少;当然,那书给出的解法一,真个麻烦,就没看了
第三种解法,还是比较传统的编程用法,位字段。
另外可参考:/article/6436343.html 一道用位存储大数的题详解
现在大家都喜欢在位上搞点文章,从最简单的移位运算比乘2快,到进阶的bit map法解决大数据量问题;从高层的bitset封装类逐个位图法排序,到底层编程的CPU大小端,感觉面试,能在bit上做文章的东西真的不少。
首先,位运算的一些面试题可以参考http://www.chinazk.com/bbs/dispbbs.asp?BoardID=109&ID=34801,非常详细的说明了各种位运算可能会考到的地方,需要注意的两点:
1、C语言提供的6个按位运算只能对整型操作数,即只能用在char、short、int和long类型
2、位运算符的优先级低于==和!=,测试时,记得加上()
然后,是编程之美提到的将帅问题(详情可以百度),看了微软提供的三种解法,自己拿到题,首先想到的是直接两层for循环,不过引入了2个int型,不符合题目要求,只有1字节空间,哪怕循环中我用unsigned char控制(为什么是unsigned呢,),也要2字节啊,根据解法一提示,首先想到了bitset,虽然对于bitset的操作会稍微麻烦不少;当然,那书给出的解法一,真个麻烦,就没看了
第三种解法,还是比较传统的编程用法,位字段。
struct { unsigned char a; unsigned char b; } i;第二种解法比较贼,居然用BYTE num= 81来映射,让i=num%9,j=num/9+1,这样所有的位置都映射好了,i=1到9,j=1到9。当然,只能用num的前提下,就使用num%9和num/9+1这两个数了。
另外可参考:/article/6436343.html 一道用位存储大数的题详解
相关文章推荐
- 决策树的一些东西,乱写的当个总结。
- 关于php中一些字符串的一些面试题的总结
- 数据挖掘一些面试题总结(Data Mining)
- 总结的一些MySQL数据库面试题
- jquery中一些容易让人困惑的东西总结[转载]
- C++的一些笔试面试题总结
- 牛客网刷面试题遇到的一些问题的总结
- ASP.NET中自己总结的一些东西
- 一些基础的东西总结一下
- linux内核一些面试题总结
- 关于php中一些字符串的一些面试题的总结
- 总结一些常出现的面试题
- 关于php中一些字符串的一些面试题的总结
- 【学习总结】【多线程】一些面试题
- ASP.NET中自己总结的一些东西
- 面试题的一些总结
- 《Linux C编程实战》中一些基础C语言知识 && 一些笔试面试题总结
- 一些常识性的东西,同学心理都知道但没人拆穿,网上有一哥们总结的不错,先保存着
- iOS的一些面试题分析总结(1)
- ASP.NET中自己总结的一些东西