面试1

2012.7.24 南京景泰信息科技有限公司

3:30准时到公司 公司在先锋广场那边 上了7楼 找到了739 刚进去 心理面就凉了 公司就2个人 没有HR 就2个搞技术研发的,然后那个技术就拿了1份试卷给我做。

大概的题目不会的:

什么是大端和小端?

Big-Endian和Little-Endian的定义如下:
1) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
2) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
举一个例子,比如数字0x12 34 56 78在内存中的表示形式为:

1)大端模式:

低地址 -----------------> 高地址
0x12 | 0x34 | 0x56 | 0x78

2)小端模式:

低地址 ------------------> 高地址
0x78 | 0x56 | 0x34 | 0x12

可见,大端模式和字符串的存储模式类似。

3)下面是两个具体例子:

16bit宽的数0x1234在Little-endian模式(以及Big-endian模式)CPU内存中的存放方式(假设从地址0x4000开始存放)为:

内存地址 小端模式存放内容 大端模式存放内容
0x4000 0x34 0x12
0x4001 0x12 0x34

32bit宽的数0x12345678在Little-endian模式以及Big-endian模式)CPU内存中的存放方式(假设从地址0x4000开始存放)为:

内存地址 小端模式存放内容 大端模式存放内容
0x4000 0x78 0x12
0x4001 0x56 0x34
0x4002 0x34 0x56
0x4003 0x12 0x78

为什么会有大小端模式之分呢?

这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但是在C语言中除了8bit的char之外,还有16bit的short型,32bit的long型(要看具体的编译器),另外,对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着一个如果将多个字节安排的问题。因此就导致了大端存储模式和小端存储模式。例如一个16bit的short型x,在内存中的地址为0x0010,x的值为0x1122,那么0x11为高字节,0x22为低字节。对于大端模式,就将0x11放在低地址中,即0x0010中,0x22放在高地址中,即0x0011中。小端模式,刚好相反。我们常用的X86结构是小端模式,而KEIL C51则为大端模式。很多的ARM,DSP都为小端模式。有些ARM处理器还可以由硬件来选择是大端模式还是小端模式。

2:写一个内存拷贝函数,C/c++

char * strcpy(char * strDest,const char *strSrc)
{
  if(strDest == NULL||strSrc ==NULL)
 return NULL;
  if(strDest== strSrc)
return strDest;
char* tempptr =strDest;
while((*strDest++ = *strSrc++)!='\0');
return tempptr;
}


其他的就是面试。然后带我上楼(其实是上面又弄了一层 他们公司的老总就住上面 一张床 一个办公桌)其实就是一室一厅那样的房子 ,是个创业型的公司 给医院做图像处理的 CT机那样的

然后老总就介绍了下他们公司的发展情况 等等 然后我就问你们公司有多少人 他说创业型公司 2010刚成立 不足10人 其实我看的出来 加老总就3个人 下面就技术开始问什么是面向对象 做的项目 socket的通信过程 3次握手

总的来说这次笔试还是可以的 比较简单 面试 有几个问题回答的不好 想了一会 也米有回答上来 估计没戏了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值