|
|
1
13
我会毫不犹豫地说,每个技术职位都需要对按位运算有一个良好的理解。 我有一则轶事间接地谈到了这个话题。 2007年1月,我在印度科钦招聘了永久发展人员。由于我没有参与候选人的初步筛选,所以我不知道期望的标准是什么,所以我准备了一系列问题和主题,从简单理解二进制和十六进制到架构、设计和项目管理。 当我和印度人力资源部的人讨论我的方法时,我(温和地)因为投得太低而受到指责。他明确表示,我关于赫克斯的问题可能会被认为是对候选人经验或教育的侮辱。 但我在英国面试数百名候选人的经历使我坚信,不可能太低。我的观点是,如果一个候选人很明显是合格的,那么很容易调整讨论的水平。我从未有人表示过被侮辱的感觉,相反,我认为一个合格的候选人在面试开始时可能会感到轻松。这也有助于打破僵局,建立一个有意义的面试所需的融洽关系。另一方面,不合格的候选人通常会遇到这些较低的障碍。 但我不想完全忽视当地的建议,我谨慎地决定将我的基本采访主题包括在内,并做好准备,如果它们不起作用的话就放弃它们。 随着面试的进行,我很高兴能从这个水平开始。它没有冒犯任何人,不合适的候选人很容易被识别出来。 这并不是说我希望应聘者每天都能处理一些琐碎的事情,但是无论是什么语言,对编程基础的理解都是必不可少的。即使是处于更高抽象级别的开发人员,也会定期暴露于十六进制(例如,RGB值)。鹦鹉学舌 stuff you find on the net 只会有助于事情第一次完美地运作。 但是对于在过去五年中开始开发的开发人员来说,我认为在善意的IDE和“无代码”编程的模因的共同作用下,很容易掩盖基本原理。Visual Studio安装SPASH屏幕吹嘘开发时不需要编写代码。的确, does Visual Studio rot the mind ? |
|
|
2
12
如今,许多程序员似乎只是头脑中充满了足够的知识,可以粗暴地将代码强制执行,然后将其发送到工作中,而不必被教导“位”之类的词是什么意思。 我告诉你这是一门垂死的艺术… |
|
|
3
10
位操作不仅仅是保存内存。它们对于编写清晰的代码非常有用。你想看哪一个?
或
这是一个无稽之谈/微不足道的例子,但你明白了。 |
|
|
4
7
如果您有一个已经很复杂的应用程序,为什么要使用位标志使其更加复杂呢?我个人不会使用这种标志,如果没有更多的好处,那么只是保持冷静。根据经验,写起来很容易,以后再调整就更难了,更不用说你自己写了。 哦,作为记录,我知道如何使用它们。 |
|
|
5
3
在内存管理非常重要的嵌入式编程之外,它们的成本超过了它们的最小价值。特别是,查询包含位标志的db列会生成隐式SQL,该SQL需要引用应用程序的代码,以确定每个位操作引用的值。
如果不得不用这种方式查询数据库并不会让你感到害怕,那么应该这样做。 |
|
|
6
2
如果您的内存和速度要求非常严格,或者在进行低级硬件编程时,位字段非常有用。 除非您正在进行嵌入式编程或类似的工作,否则您不需要它们。对于执行相同的任务,有更多可读、强大、可扩展的机制。例如,Java的枚举集。 我希望一个好的程序员了解它们,而不是使用它们。 |
|
|
7
2
“很多”是相当通用的,我们需要名字!;-) 说真的,我来自汇编语言和C语言,我非常精通位操作。 但是我不会用它们来替换,比如说一个类中10个不相关的布尔值,用一个整数中的二进制标志来替换… 除非,也许,我有这个类的数百万个实例! 如果必须操作布尔值的很多实例,我将使用一些位集类来优化和抽象这些位数组。 现在,如果您想访问rgb[a]值的组件,如果您想调用一些API(即使这只是操作一些命名标志),那么在编程中位操作fu几乎是强制的。 简而言之,我不会在我做的每个项目中都使用它,但是你不能忽视如何使用它(有点像regex…)。 |
|
|
8
0
我仍然使用位运算符,虽然作为我选择的主要语言(也是专业语言)是C我经常使用标记枚举:)但是,我认为很多用PHP之类的东西编写代码的人都是自学的,不知道位运算或它们的用法。 自学自学,直到我开始写C和C++代码之前,我对它们了解不多。现在我把它们用在有意义的地方。) |
|
|
9
0
它们总是有一个地方可以在很小的空间中存储大量布尔标记; 如果您有32个标志(例如);您可以将它们全部存储在一个“长整型”中,并且只使用最多4个字节,现在假设您选择为每个标志使用一个长整型(仅仅是因为代码更易于维护-您现在有128个字节需要处理)。 我的背景主要是C/C++,所以我在他们身上长大,所以我在我使用的每种语言中都明确地使用它们,但我确实同意;新手程序员往往不在乎——所有这些记忆都在周围——谁在乎呢? |