首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
牛客665557395号
河北工业大学 Java
发布于天津
关注
已关注
取消关注
太强了
@小羽的嵌入式校招指南:
嵌入式校招_面试经验大全【C语言】【1_变量】
【以下内容,后续会不断更新补充!】各位同学有想看某一个知识点详细解析的,也可以在评论区留言~目录【专栏一】嵌入式校招指南作者机械硕士,从零开始自学嵌入式软件,21届秋招进入国内芯片大厂。 从自身转行经历来看,网上嵌入式学习路线的资料少之又少,大多千篇一律且复制粘贴。 而嵌入式入行门槛高,技能树要求多,学习难度非常大,没有有效的方法指导,很容易迷失方向,错过校招。 在此专栏分享我的校招从零开始转行经验,听我给你娓娓道来~专栏链接 https://www.nowcoder.com/creation/manager/columnDetail/MWZkkj1.专栏大纲&写在前面2.转行概述3.前期准备4.自学教材推荐_基础知识5.自学教材推荐_笔试准备6.开发板&项目7.简历8.行业&公司9.城市&岗位10.消费&工业电子类公司未完待续……【专栏二】嵌入式校招_面试经验大全嵌入式软件校招的常见问题,应付校招面试的速效救心丸,你值得拥有! 嵌入式的知识太多太杂,不知道面试经常问哪些? 书上说的知识点太抽象,没有一定的基础很难理解? 别怕,本专栏用通俗的语言和比喻,为你讲清楚! 包含C语言、计算机组成原理、操作系统、数据结构与算法及计算机网络等,详见大纲。1.【C语言】【1_变量】https://www.nowcoder.com/discuss/4917738635256791042.【C语言】【2_关键字】https://www.nowcoder.com/discuss/4975623096282767363.【C语言】【3_数据结构&位运算】https://www.nowcoder.com/discuss/505894349847224320一、变量&位运算【问】介绍一下全局变量和局部变量【答】 C语言中所有变量都有作用域,区别在于变量定义在C文件中的位置。全局变量全局变量的作用域是整个程序,可以被程序中的任何函数访问。通常在C文件头部定义,程序启动时就分配好,在程序运行期间一直存在于内存的全局数据区。局部变量局部变量的作用域仅限于所在函数内部,不能被其他函数访问。在函数被调用时才会被创建,在函数结束时被销毁。【解析】【考察点】变量的作用域全局变量就是公共资源,所有人(函数)都能看到,都能拿来用。局部变量就是私人财产,仅限本人(当前函数)使用。全局变量若加上static关键字,则作用域就变成仅限当前C文件可调用。全局变量和局部变量同名时,局部变量生效。形参变量也是局部变量,实参给形参传值就是给局部变量赋值。局部变量有两种创建方式:在函数开头定义的变量(数据,数组等),程序运行时自动创建在内存的栈中,在函数结束后(return后)自动销毁。在程序中显式地使用malloc()等函数来申请,存放在内存的堆中,必须手动调用free函数来释放(否则会导致内存泄漏)。【问】Float类型怎么判断是否为0【答】const float EPSINON = 0.000001;if ((TestNum >= - EPSINON) && (TestNum <= EPSINON) printf("TestNum equal to 0!");else printf("TestNum not equal to 0!");【解析】【考察点】float类型变量的大小比较float存储方式float类型占4Byte即32bit,包括1bit符号位、8bit二进制指数和一个23bit尾数。浮点数存储标准可以查看IEEE754标准。首先我们都知道,科学计数法是将所有的数字记为(±)A.B * 10^C 的形式。但是由于数据在计算机中都是以二进制存储,所以float需转为(±)1.B * 2^C 的形式。因此,float将4Byte(32bit)分为1、8和23bit共3部分,来表示符号(±)、B和C储存。符号位(1bit)。0表示正数,1表示负数。指数部分(8bit)。存储了上文的C+127(特殊算法,理解为指数部分就是为了存储C即可)。尾数部分(23位)。上文中提到的数字B。总结下来,float类型可以保证包括整数位在内的7位有效数字是准确。EPSINONEPSINON是很小的值,因为float型只能精确到小数点后六位,即1e-6。将float型的TestNum与1e-6比较,若比1e-6小则为零。小数六位以后是没有意义,如数0.0000001虽然不等于零,但是第七位小数1是没有意义的则认为这个数等于0。【问】int型变量是多少位?【答】根据当前CPU架构是多少位决定的。按照C语言定义,int必须介于short跟long之间,也就是说它必须介于16位跟64位之间。int类型具体占用多少位,与当前CPU架构相关。多少位的CPU则代表着int类型占据多少位。比如在16位51单片机的C代码中,int代表2个字节(16位);32位RAM处理器的C代码中,int代表4个字节(32位)64位的RAM64处理器中,则int是8个字节(64位)。【解析】【考察点】变量占据的bit大小与CPU架构的关系在32 位的系统上short类型占2个byte;int类型占4个byte;long类型占4个byte;float类型占4个byte;double类型占8个byte;char类型占1个byte。可以用sizeof(int)测试一下当前系统下的int类型长度。使用建议对于长度敏感的变量,建议包含该头文件:include stdint.h。然后使用固定长度如uint32_t(32位的unsigned int)、uint64_t这样的显式类型。这样的类型定义,可以直接跨平台使用,不用担心移植过程中出错~而对长度不敏感的变量(如for循环中的i),直接用int即可。指针类型也会占用空间,同样和CPU架构有关。但是具体的细节不太一样,详见后续指针章节。【问】*char型变量最大能表示的值?如果超出最大值怎么处理?【答】 char型变量是8位,共能表示2^8=256个数值。其中无符号的unsigned char,能表示0~2^8-1,也就是0-255有符号的char型变量,-128到127之间的整数值。其中的最高位为符号位,0表示正数,1表示负数。char型变量超出最大值后的具体计算方法:加法溢出的计算方法:溢出值 - 256。减法溢出的计算方法:溢出值+256。【考察点】"char变量所能表示数值的范围"以下有符号的signed char简称为char,无符号的unsigned char简称为uchar。【前提】【重要】:无论什么类型的数值(char、int),无论有符号或无符号,在计算机中都是以"二进制"的形式储存,读取的时候会根据该数值的类型来"翻译"成指定类型(uchar、int、uint)。 可以把uchar看作是2^8=256个刻度的钟表,从0到255。+1表示顺时针走一个刻度,-1表示逆时针走一个刻度。当达到它能表示的最大值256时,会重新从0开始计数。举个栗子:加法溢出 uchar num1 = 249; uchar num2 = 69; uchar sum = num1 + num2; 那么sum等于多少呢?程序运行结果显示:249+69=62!!为什么会这样呢?明明249+69=318才对呀。因为318超出了uchar类型所能表示的极限,uchar只能表示[0, 255]。(255 = 2 ^ 8 - 1)。就像256个刻度的钟表无法表示318一样,那么最后318只能在绕了一圈超出0/256刻度以后,继续沿着顺时针走(318-256=62)步,最终停在62。【总结】无符号加法溢出的计算方法:溢出值 - 256。 即(249 + 69) - 256 = 62。举个栗子:减法溢出 uchar num1 = 69; uchar num2 = 72; uchar sum = num1 - num2; 那么sum等于多少呢?69-72应当等于-3。但是同理,-3超出了[0, 255]。-3可以理解为从0/256刻度往逆时针走了3刻度,停在了253。【总结】无符号减法溢出的计算方法:溢出值+256。 即(69 - 72 ) + 256 = 253。 (0 - 255) + 256 = 1。举个栗子:减法溢出加法溢出【问】*如何判断一个机器是大端还是小端【答】使用指针法或联合体的特性来判断。具体代码见解析【解析】【考察点】大小端的概念以及16bit类型变量转换成8bit类型变量的原理基本概念对于位数大于8bit的处理器,由于寄存器宽度大于一个Byte,那么必然存在着一个如何将多个Byte安排的问题。因此就有了大端存储模式和小端存储模式具体表现若将0x12345678放入计算机中就有两种方法:1) 大端模式 Big Endian数据的高字节保存在内存的低地址,低字节保存在内存的高地址大端更符合我们的书写习惯:先写高位数据,再写低位数据大端低地址 12 34 56 78 高地址—————————————————> 内存地址递增方向 2) 小端模式 Little Endian数据的高字节保存在内存高地址,低字节保存在内存的低地址小端低地址 78 56 34 12 高地址 —————————————————> 内存地址递增方向判断方法指针法#include <stdio.h>int main(void){ char nChrNum; int nIntNum = 0x12345678; int *pStartPos = &nIntNum; /*将nIntNum的起始地址赋值给指针pStartPos */ nChrNum = *pStartPos; if (nChrNum == 0x78) /*nChrNum截取了nIntNum的低位*/ printf("\nLittle Endian\n\n"); else /*nChrNum截取了nIntNum的高位,即nChrNum == 0x00*/ printf("\nBit Endian\n\n");}联合体法#include <stdio.h>/*2-联合体法*/int main(void){ union Union { int nIntNum; char nChrNum; }Union1; /*联合体union是一种具有多个类型或格式的值,在任何时候只有一个值*/ Union1.nIntNum = 0x12345678; if (Union1.nChrNum == 0x78) /*联合体以char类型表示*/ printf("\nLittle Endian\n\n"); else /*联合体以int类型表示,即nChrNum == 0x00*/ printf("\nBit Endian\n\n");}}原理解析首先我们要明确一个概念,所有的数据在计算机内部都是以“二进制”保存的。只不过在使用读取时,使用不同类型来翻译这一段二进制数据。否则我们为什么要强调数据的类型,必须先定义变量的类型才能使用。这是因为不这样做,计算机也不知道要将数据翻译成什么类型。由联合体union的特性可知:共用体表示几个变量共用一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量。在union中,所有的共用体成员共用一个空间,并且同一时间只能储存其中一个成员变量的值。因此当我们使用int类型来存储0x12345678后,再使用char类型读取该数据时计算机会发现只能以8bit来翻译,也就是只能提供低8位的数据。指针法同理,从地址开始处只能读取8bit。羽你俗说通俗地说,我们无法将4升水(int,4Byte, 32bit)倒进一个1升(8bit)容量的瓶子里,因此只有最初的1升水(低8bit)可以倒进去保留,后续的3升水(高24bit)都溢出丢失了。更多内容,持续更新中!!!【觉得有用的小伙伴们可以订阅一下专栏,后续还有更多文章哦~ 😀 】作者其他专栏【嵌入式校招指南_完整学习路线】https://www.nowcoder.com/creation/manager/columnDetail/MWZkkj请帮忙点赞、评论+收藏,是对我最大的支持~感谢!!!
点赞 42
评论 7
全部评论
推荐
最新
楼层
小羽的嵌入式校招指南
紫光展锐_系统平台管理部_嵌入式驱动软件
{"pureText":"感谢认可~","imgs":[]}
点赞
回复
分享
发布于 2023-05-30 13:46
北京
暂无评论,快来抢首评~
相关推荐
01-20 16:57
门头沟学院 C++
入行算法嘛,那么接下来你要面对的是...
你以为你只需要调调参数?实际上,你要面对的将是:生犯贪嗔痴戾疑,死受鞭笞斧灼烹(不好意思,杀批乱入了)。好了,言归正传,作为一个合格的视频算法工程师,大概的技术链路就如下图所示,其中最重要的就是视频画质算法(超分/去噪/增强),这一领域不可避免地要深度依赖深度学习。“深度学习”这个概念大家耳熟不一定能详,但如何系统地掌握它?也就是从“知其然”到“知其所以然”? 阶段一:数学与编程基础 ( 2周左右,熟悉可跳过)万丈高楼平地起,在开始搭建神经网络之前,你需要掌握底层的语言(Python)和逻辑(数学)。不要被复杂的公式吓跑,我们以“够用”为标准。数学基础线性代数:矩阵运算、特征值、特征向量微积分...
为了入行xx岗,我学了_...
点赞
评论
收藏
分享
01-19 09:57
湘潭大学 证券分析师
外卖大战下半场,为什么顺丰同城应该被重新定价?
经过监管部门去年两次重点关注,外卖大战的故事仍然没有结束。去年12月,美团曾表态要拿下餐饮外卖领域的绝大部分份额和利润。阿里在1月8日与投行进行四季度业绩前瞻沟通提示,提到2026年淘宝闪购将坚定加大投入达到市场绝对第一,份额增长是首要目标。这相当于再次把外卖甚至即时零售的竞争推向了价格和补贴的极限。就在火药味散发的第二天,监管部门给外卖平台踩了一脚刹车。国家市场监督管理总局发布消息称,国务院反垄断反不正当竞争委员会办公室已经启动对外卖平台服务行业的竞争状况调查评估,点名当前“拼补贴、拼价格、控流量”问题突出,正在挤压实体经济,加剧“内卷式”竞争。从措辞到动作都不难看出,这一次关注的重点不是单...
点赞
评论
收藏
分享
01-19 20:11
已编辑
吉林大学 前端工程师
米哈游前端日常实习一面
1、面试官自我介绍2、结合项目自我介绍3、回流和重绘是什么,怎么减少4、tailwindCss相比手写class的优点,或者说行内样式相比class的优点5、css选择器优先级6、flex:1是什么7、flex-grow和flex-shrink的作用8、instanceOf的原理,原型链查找的过程9、Promise.all和Promise.race10、宏任务和微任务有哪些11、事件循环12、看代码说输出图一和图二13、父子组件的 setup 和 render 和 mounted 的执行的先后顺序一开始写错了,后面面试官提示了父setup -> 父 render -> 子 setup -> 子 render -> 子mounted -> 父mounted14、vue怎么监听到生命周期钩子函数的执行顺序的15、vue的响应式原理16、v-model的双向数据绑定原理17、进程和线程的区别18、浏览器有哪些线程算法题 经典150:最大正方形反问阶段:主要业务:写类似于飞书的那种内部管理的软件主要技术栈:vue最后被感谢了,面试官说感谢能参与面试......
查看17道真题和解析
点赞
评论
收藏
分享
01-19 18:53
已编辑
蚌埠坦克学院 Java
被mentor温暖到了
实习第三天了,讲讲感受吧,mentor每天都会喊我一起去食堂吃饭,会给我推荐哪家的好吃,吃完饭还会等我,经常没事,会来问我有没有问题,有问题随时来找他。看到我就一个电脑分屏比较困难,还帮我安排了一个新的显示器,可以看下面的图,到现在都没给我派什么任务,让我先熟悉。反正,心里暖暖的
咖啡馆守时的南瓜:
虽然但是 总有分开的那一天
点赞
评论
收藏
分享
01-20 11:15
realme_软件工程师(准入职员工)
禾赛科技内推,禾赛科技内推码
禾赛科技软件测试面经全程一个小时左右,需要写SQL和代码- 自我介绍- 项目提问- 项目里面的好友列表咋做数据库设计的- TCP四次挥手- python基本数据结构- 列表和数组的区别- 写SQL(用到分组、排序、聚合函数)- 写代码(输入一个数,各个位上两两交换位置,输出最大的数)全球激光雷达Top禾赛科技26届校招【企业介绍】全球领先的激光雷达研发与制造企业,全球激光雷达市占率No.1,美国纳斯达克上市。【开放岗位】商务类、产品类、项目管理类、销售类、系统类、芯片类、光学类、机械类、电子类、软件类、算法类、测试类、制造类【面向人群】毕业时间:2024.7-2025.12【工作地点】上海、杭...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
备战春招,网申一键填写工具,发布了!!!
3.6W
2
...
27双非非科班4段实习从字节tt到腾讯wxg
5671
3
...
专科工作一年后的心里话
4523
4
...
我爸对计算机行业的看法,是否准确?
4228
5
...
第一次被同事气笑了
3926
6
...
字节校招landing实感
3084
7
...
坚持的爱好是规律饮食
2668
8
...
AI coding时代,前端已死?
2608
9
...
多益可以去吗
2604
10
...
在抖音上认识的姐姐太疯狂了
2481
创作者周榜
更多
正在热议
更多
#
哪些公司开春招了?
#
5658次浏览
95人参与
#
实习教会我的事
#
50537次浏览
392人参与
#
上班以后,你还有哪些坚持的爱好?
#
4929次浏览
144人参与
#
为了实习逃课值吗?
#
61585次浏览
517人参与
#
你都在哪些场所面过试?
#
13543次浏览
186人参与
#
拼多多工作体验
#
43952次浏览
283人参与
#
工作压力大怎么缓解
#
135335次浏览
1199人参与
#
AI coding的好用工具分享
#
11991次浏览
280人参与
#
实习怎么做才有更好的产出
#
8158次浏览
176人参与
#
找工作以来,你最看不惯__
#
7584次浏览
198人参与
#
实习生工资多少才算正常?
#
9041次浏览
172人参与
#
你最近因为什么迷茫?
#
25373次浏览
397人参与
#
实习离职怎么跟领导说
#
75242次浏览
418人参与
#
你给AI提过哪些离谱的需求?
#
4183次浏览
142人参与
#
工作一周年分享
#
49521次浏览
254人参与
#
牛客AI文生图
#
19165次浏览
225人参与
#
领导做过最不靠谱的事
#
8382次浏览
168人参与
#
xxx岗位的一天
#
41572次浏览
275人参与
#
实习学不到东西怎么办?
#
270818次浏览
2491人参与
#
机械/制造每日一题
#
84443次浏览
1440人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务