博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试题总结——位的一些东西
阅读量:2440 次
发布时间:2019-05-10

本文共 717 字,大约阅读时间需要 2 分钟。

    今天看了下《编程之美》,正好看到将帅问题,将答案看完后,感觉,去微软这帮人果然很猛,而且发现,面试题老喜欢搞一些bit级运算的东东,所以就总结一下,以备不时只需。希望也能帮到看的人。

     现在大家都喜欢在位上搞点文章,从最简单的移位运算比乘2快,到进阶的bit map法解决大数据量问题;从高层的bitset封装类逐个位图法排序,到底层编程的CPU大小端,感觉面试,能在bit上做文章的东西真的不少。

    首先,位运算的一些面试题可以参考,非常详细的说明了各种位运算可能会考到的地方,需要注意的两点:

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这两个数了。

另外可参考: 一道用位存储大数的题详解

转载地址:http://cmcqb.baihongyu.com/

你可能感兴趣的文章
css float属性_CSS float属性和清除
查看>>
字符串tostring_字符串toString()方法
查看>>
字符串方法中会修改原字符串_字符串padStart()方法
查看>>
字符串中include_字符串include()方法
查看>>
字符串endsWith()方法
查看>>
number.isnan_Number isNaN()方法
查看>>
虚拟dom_虚拟DOM
查看>>
安卓录制视频不录制外界声音_我如何录制我的视频
查看>>
如何在纯JavaScript中等待DOM ready事件
查看>>
react测试组件_测试React组件
查看>>
vue组件引入scss变量_如何将SCSS与Vue.js单个文件组件一起使用
查看>>
node.js删除文件_如何使用Node.js删除文件
查看>>
怎么过去web项目路径_我过去所做的所有软件项目
查看>>
开发人员,学习营销
查看>>
node 导出csv文件_如何使用Node.js编写CSV文件
查看>>
JavaScript数组简介
查看>>
创建react应用程序_如何调试React应用程序
查看>>
javascript国际化_JavaScript国际化
查看>>
JavaScript公共类字段
查看>>
object create_Object create()方法
查看>>