- 主题:上午面试了一个小孩,问了一个问题是不是太过分了 (转载)
查了一下k&r:
char a single byte, capable of holding one character in the local character set
The qualifier signed or unsigned may be applied to char or any integer. unsigned numbers are always positive or zero, and obey the laws of arithmetic modulo 2n, where n is the number of bits in the type. So, for instance, if chars are 8 bits, unsigned char variables have values between 0 and 255, while signed chars have values between -128 and 127 (in a two's complement machine.) Whether plain chars are signed or unsigned is machine-dependent, but printable characters are always positive.
【 在 ilovecpp 的大作中提到: 】
: 考虑到int全部默认signed,唯独char不同。大概是设计C语言时,各种cpu都能直接操作有符号word,而存在cpu(或者设计者以为存在cpu)只能操作无符号byte,有符号byte需要软件模拟。
: :
--
FROM 216.240.30.*
顺带问下:为啥一个字节对应的是8bits,而不是10这样的自然数?
【 在 lvsoft 的大作中提到: 】
: 嗯...毕竟1byte=8bit也是经过一些时间的发展才稳定下来的...
:
--
FROM 216.240.30.*
为啥C标准会弄这么多未定义的玩意?这不是找麻烦么?
【 在 feiy (null) 的大作中提到: 】
: 不是奇葩,而是你做嵌入式固件的经验很一般没有遇到过或者不知道这个可以说常识、而且的确是和许多bug相关的一个常见话题而已。
: 同时,如果你真的是搞技术做嵌入式的,那你发这个回帖(认为是奇葩)风格,的确是令人感到比较遗憾的。
: 1、 你随便百度一下 char is unsigned,也可以看到很多人都在说 char 是signed还是
: ...................
--
FROM 112.236.167.*
因为C的定位就是个“高级汇编”,在每个支持的平台上,
要跟平台硬件的寄存器级操作一致,避免太多抽象层。
【 在 chylli (豆粉) 的大作中提到: 】
: 为啥C标准会弄这么多未定义的玩意?这不是找麻烦么?
--
FROM 183.156.100.*
历史遗留
【 在 chylli 的大作中提到: 】
: 为啥C标准会弄这么多未定义的玩意?这不是找麻烦么?
:
--
FROM 216.240.30.*
如果是firmware和embedded相关领域,这是个很好的问题。不过对刚出校门的学生,估计确实是感受不到,我怀疑即使是电子工程系出来的学生这些也不一定在学校学得到。
【 在 z16166 的大作中提到: 】
: 如果应聘者是有经验的人的话,问这种没啥吧
: 如果是刚毕业的学生,可能就是照着书本上学了一下C语言。问这种可能就超出他的知识范围了。
--
FROM 216.240.30.*
前面表现可以是面具,后面生气是本性。
或者前面表现可以是因为顺风仗,后面生气是遇到困难的反应。
【 在 feiy 的大作中提到: 】
: 看原文,我提示了,也解释了。他的反应,让我认为,似乎和这里少做嵌入式的版友类以:过去没这里的常识经验,也可能觉得是在问他回字四种写法。当然,我们也会综合全面考虑的,不会因一点误会就否定一切,小孩开始表现也都还可以,所以我才觉得最后一问是否必要,毕竟经验这东西,以后也可补,只要态度好。扯远了。
--
FROM 60.3.149.*
有多大意义?知道10个这样的问题,10个之外的你能知道吗。静态检查定义的告警,错误有几百,上千个。你记得下来?
我来两个例子:
for( int32_t i=0;…; i++)里面用++i,还是i++?哪个更合适
while( true)还是for(;;)合适
另外我想问,大家写代码都靠人review?都靠经验写?!靠经验提高代码质量?
小公司是不是基本都不用代码单元测试覆盖率,静态检查?
【 在 OrderPhoenix 的大作中提到: 】
: 不,这种问题很有意义,作为面试题应该问。
: 这些知识,就是在帮你理解为什么公司要规定这些编码规范。
:
: ...................
--来自微水木3.5.11
--
FROM 120.245.128.*
大致的历史是先有6bit,构成常用字符数字集。这也是base64编码的内容。
之后到了7bit,加入了控制符。
再后面到了8bit,加入了制表符。
然后8=2^3,这个对齐比较舒服,大家就约定俗成了。
10bits这个值感觉就很不舒服,虽然8088/8086也用了20bit位宽就是了。
不过我顺便去查了下WIKI,历史上1byte=多少个bit的取啥值都有,这个区间很大,范围是1-48...
【 在 cjohn 的大作中提到: 】
: 顺带问下:为啥一个字节对应的是8bits,而不是10这样的自然数?
:
--
修改:lvsoft FROM 180.111.50.*
FROM 180.111.50.*
哎呦妈呀,居然还有取48的,汗。
【 在 lvsoft 的大作中提到: 】
: 大致的历史是先有6bit,构成常用字符数字集。这也是base64编码的内容。
: 之后到了7bit,加入了控制符。
: 再后面到了8bit,加入了制表符。
: ...................
--
FROM 216.240.30.*