来源 | 干部参考

转自:https://mp.weixin.qq.com/s/Ha-Q5erfVzP9X8QE4BjRmQ
分享个人经验,保留阅读记录,做时间的朋友
转自:https://mp.weixin.qq.com/s/Ha-Q5erfVzP9X8QE4BjRmQ
转自:https://mp.weixin.qq.com/s/N8HBe6gLjZSm0R7LBQVz5A
作者:小马宋
本文是“小马宋七周年案例发布会”上小马宋老师个人演讲的整理。
破掉对营销的妄念
我以前常说,不要对营销抱有幻想,其实企业的成功本质上是经营的成功,营销只是企业经营中的小一部分。
作为一个营销咨询公司的创始人,这个说法有点像在砸自己的饭碗,但这其实是商业世界的真实现状:营销并没有你想象中那么重要。
我们知道,中国第一大瓶装水品牌是农夫山泉,农夫的营销非常强。排在第二的怡宝,其实做广告没那么凶,却也做到了年营收超过100亿,而且去年已经保持了两位数的增长。
其实做水最重要的是靠渠道组织能力,而不是营销(这里意思指狭义的营销,不包括渠道)。所以我们不要寄希望于一个营销公司出一个大创意,就能让企业获得成功,其实很难的。
大家回忆一下,去年刷屏的爆款营销事件,你能不能想起5个来?想不起来。为什么?因为这件事没有那么重要,也没那么好做。所有伟大的公司和品牌都是老老实实的搞经营、做组织的建设、渠道的铺设,一个一个做起来。
我之前跟爱玛的首席品牌官莫总聊,非常有感触。我当时很不理解,爱玛一周怎么能做出3万条短视频?他说,爱玛有2万个经销商,让2万个经销商都做就行了。那怎么让这2万个经销商做呢?你就得做说服工作。
可能你们都没有听说过,中国全网销量最多的香氛品牌是谁?全网销量最多的钟表品牌是谁?全网销量最高的漱口水品牌是谁?全国门店数最多的汉堡品牌是哪家?
第一个叫做尹谜,是全网香氛销量最大的一个品牌,创始人沈总前段时间来我们公司,我跟他聊了很久。
第二个品牌叫美世达,我去了这家公司,也聊了很久,这个品牌占了全网钟表销量的一半。
第三个品牌叫参半,是一个漱口水品牌,我在深圳见过他的老板,参半已经超过了李施德林,感觉悄无声息的,但是人家还赚钱。
第四个叫华莱士,华莱士在全国有2万多家店,它是百事可乐在中国第二大经销渠道。我估计在场有90%的人没有吃过华莱士,它在中国的门店数比肯德基和麦当劳加起来还多。
还有很多新消费品牌,大家觉得特别厉害,最近却开始陆续倒闭和关店,以及销量下滑。
为什么我们没听说过的品牌,但人家却经营得很好,而且还很赚钱?为什么你觉得那么牛的品牌,很多是没有利润的,甚至都是负的,到最后就是一场过眼云烟。
再给大家介绍一个企业,这个企业家给自己2026年定了一个经营目标,他说“实现每年税收一个亿,利润一个亿”,一个品牌把税收目标写成营业目标的,这是我第一次听说,而且我也第一次知道他的盈利目标不是达到一亿,是控制在一亿以下。这个品牌叫胖东来。
胖东来从来没有做过广告,因为生意太好了,导致别的超市没有生意。他们每周二关店,为给别的同行留一点活路,要不停地关店控制它的利润。
胖东来为什么可以不靠营销宣传做这么好?全国无数个超市老板去学胖东来,我说你去学什么呢?胖东来的服务员可以做到自愿跪在地上擦地板,你回去能让你的服务员擦地板吗?
你学不来。因为胖东来的老板90%的股份全分给员工了,你是不是先把这个学会?
其实企业做得好有各种各样的方式,我们有很多种方式能把一个企业做大,但未必是靠常规理解的营销手段。这就是我们今天要讲的关于企业的经营。
公司经营的本质是建立优势
比亚迪,去年它的营收4240亿,净利润166亿,全年交付新能源车186万辆,而且在第一季度大家都觉得生意不太好的时候它继续增长85%,它是全球新能源车销售冠军。
它还有很多标签,全球口罩产量第一,全球第一大充电电池制造商,全球排名前五的电子代工商,中国第二大储能设备服务商。
2008年巴菲特在芒格的介绍之下入股了比亚迪,芒格说“除了比亚迪,没有公司会比特斯拉做得更好。”这是99岁的查理·芒格说的。
有一些比亚迪粉丝说,“在2021年之前,比亚迪的品牌价值为负。”
比亚迪营销做得好吗?我觉得营销做得很差,真的,有那么多人觉得比亚迪那么low,觉得比亚迪怎么怎么样,但它是企业经营的王者,品牌营销的青铜。那你说我为什么一定要靠营销来制胜,为什么不可以通过企业经营来获得优势呢?
1.总成本领先
比亚迪怎么才能做得这么成功?首先它叫做总成本领先,低价并不是战略,低成本带来的低价才是一种战略。
怎么达到总成本领先呢?就是垂直一体化和超前布局。
垂直一体化就是把上游下游全干掉,都自己来。王传福说过一句话,当时是万科董事长郁亮跟王传福去交流,他说汽车整个产业链这么成熟,你干吗要自己都做呢?王传福说,每家企业都要10%,我做什么?要做全做。这是他的经营逻辑。
所以你看他们做什么?第一个,上游的电池原料,他通过资本来参与。它的电池、电极、电控技术自研自产,整车制造自己做,而且汽车配件,车灯、显示器、多媒体、音箱、空调、压缩机、配电盒、开关控制器、车钥匙、橡胶、涂料……全部自己做。
他去年还做了一件事,2022年比亚迪订了8艘滚轮货船。一艘船的造价是8400万美金,用50亿人民币价格订购了一个船队,为什么?因为一辆电动车从中国运到欧洲再往回跑1万元的运费,比亚迪总共也就是一辆车赚7000元的利润。所以他说我要自己做,我要把这个船队也自己做了。
包括它的工业芯片,大家知道,在2020年,全球都缺芯片,但是比亚迪不缺,为什么?是因为它在很早的时候就收购了一家叫宁波中纬的半导体公司。
那个公司面临破产,它引进了当时20年前的富士康的一条生产线,马上破产了,但是王传福收购了,买了当年的宁波中伟,就是为未来他造车做准备的,因为宁波中纬能生产一种芯片叫IGBT。
2.技术领先建立壁垒
第二部分叫技术领先建立壁垒。比亚迪我不去了解不知道,一了解,比亚迪太牛了,它有几个非常牛的技术。
第一叫刀片电池,在电动车的电池里面有两个技术路线,第一个叫磷酸铁锂电池,第二个叫三元锂电池。
三元锂电池核心优势是能量密度高,低温性能强,磷酸铁锂电池使命寿命长,而且安全性能高,比亚迪选择了磷酸铁锂离子电池。
他研发出刀片电池之后,彻底解决了电动车的安全问题,所以比亚迪在发布刀片电池的时候说,刀片电池发布之后,“不安全”这个词在电动车里面已经成为历史。
第二个是DM-i超级混动系统,过去的混动是燃油+电,它主要是以油为主,以电为辅。但是DM-i超级混动技术,比亚迪做到了以电为主,以油为辅。
包括IGBT4.0技术,2008年,王传福收购了宁波中纬,是因为他看到如果未来我要造车,工业芯片、IGBT芯片是它的核心技术。这个IGBT是干什么的?就是把电池的直流电转化成交流电,目前比亚迪已经实现了全部资产,也已经有40%的剩余产量可以供给其他汽车公司,这就是他在技术上的积累。我没有想到原来一家中国的能源公司可以这么厉害。
3.一把手的市场判断
比亚迪还有个特别厉害的,是王传福个人对市场的判断。
当年电动车一起来的时候,所有人都说把电车做得非常好,但是王传福有一个坚定的信念,先跑量。
为什么?在一个增量市场,你要先做量,而不是质量。因为所有人都没有见过电动车,你买的第一辆电动车定义了你对电动车的定义,所有的消费者都没有买过电动车,那你干吗要做得更好?我要先跑量,先把这个市场占住。
当这个市场开启存量竞争的时候,比亚迪今天开始做智能化。把这个东西做得更好,仰望一出来,比亚迪的高端车可以横着走,它的技术非常强。所以王传福对于这个市场的判断我觉得非常厉害。
考虑营销,先考虑更高一级的问题
我为什么花这么多力气跟大家去讨论企业经营的问题?因为营销有很多问题解决不了,但是企业经营可以解决,所以我给大家分享战略专家魏斯曼讲的一句话:一个问题的解决,总是依赖于与问题相邻的、更高一级问题的解决。
怎么解释呢?更高一级的问题,比如说今年的贺岁片《满江红》,岳飞为什么会有问题?
就是因为战争的问题不能用战争来看,战争的问题要从政治,政治就是更高一级的问题。为什么岳飞打仗那么厉害不能打到金国去?那是因为政治问题,因为宋高宗不想打。为什么不想打?是因为两个皇帝都在金国被困着呢,如果打完了,你是不是要送回来,这个叫政治问题。
当你考虑到更上一级问题的时候,为什么岳飞不能打过去,你就明白了,岳飞再厉害也打不过去,因为政治问题决定了战争问题。
《战争论》里面说过一句话,他说战争是政治的延伸,他第一次提出这个观点,过去在讲战争的书里面所有都在讲战术怎么打仗,海陆空怎么样,但是克劳塞维茨第一次提出来战争其实是政治的延续,政治决定了战争的走向。
所以有些仗可以不打,有些仗可以败,这都是政治问题,这个叫做更高一个层级的问题。
营销更高一个层级的问题是什么?叫企业经营,如果我们只从营销角度去看,有很多问题是无解的,但是如果你从企业经营角度去看,这个问题就迎刃而解了。
企业经营,就是为达成企业愿景而开展的一系列活动,包括人才招聘、企业管理、财务管理,各种各样的,营销其实只是企业经营的一部分。
企业经营的逻辑是大于所有的营销理论和方法的,你今天不管是什么定位理论,还是各种各样的营销方法,当你发现它不符合你的认知的时候,你从企业经营的角度就能找到它的解释。
比如说南城香原来做电炉烤串,已经占领了心智,为什么它不做烤串了呢?因为当环境发生变化的时候,企业要考虑怎么办。
原来做电炉烤串赚钱,是因为那个时候北京可以外摆,北京做烤串,里面吃,外面也能吃,100平方米可以摆成300平方米,所以可以赚钱。
后来北京取消外摆,你就赚不到钱了。所以汪总说顾客想吃点什么我们就做点什么,做点馄饨、弄个盖饭、搞个奶茶,什么都上了,人家照样做到了快餐之王。
所以企业经营的问题,大于企业营销的理论,你要用企业经营来解释它,你就知道不一定要坚持这个东西。比亚迪为什么能做到全球第一呢?它的营销做得很烂,为什么还可以做到?就是因为企业经营厉害。
企业经营需要遵循的几个原则
1.建立优势
我们做企业经营的开展,我们要始终遵循几个原则,其实是一个原则,叫做建立优势、保持优势、发挥优势。
企业不是一开始就有优势的,我们就要建立优势,比如说比亚迪,比亚迪的经营是从没有任何优势逐步开始的,1997年比亚迪获得了第一个机会,就是金融风暴,日本三洋的镍铬电池供应有问题。
于是比亚迪占领了全球40%的充电电池的市场份额,之后它已经成为全球充电电池的第一大供应商,这个优势是逐步建立的。
2003年比亚迪收购了一家汽车公司叫秦川汽车,马上就要破产了,他还收购了一家手机代工企业,为什么?因为未来两个行业要大量用电池,一个是未来的电动汽车,还有一个是手机,所以它要把下游也干了。
在2008年收购了宁波中纬,再后来去买船,这都是他逐步建立自己优势的一个经营动作。
2.保持优势
比如说小马宋这家公司,小马宋本人就是小马宋公司的早期优势,因为我早年就在公众号已经成名了,我去建立一个咨询公司,当然可能很快就能获得业务。
但是你如何保持这种优势呢?因为人总是要没了的,如果我们不能培养出替代小马宋的员工,这个优势就会随着我个人智力和精力的衰退而优势。
你还要用标准化的生产流程、生产方式、创意方法来培养你的员工,让这家公司不再依靠小马宋的个人智力,而是依靠集体作战、系统作业方法来维持你的优势。
3.发挥优势
你不要去做自己不擅长的事,不要做自己能力范围之外的事情,你要发挥你自己的优势,然后获得更多的利润。
比如说有一个我非常喜欢的老师,叫罗永浩,为什么罗永浩去做直播立刻能够把钱还上?因为发挥了他的优势,他的优势就是做网红,他就是天生为网红而生的一个人。我很敬佩罗老师,但是我觉得如果他想发挥优势的话,他还是去做网红比较好。
我们再接下来看一些企业,是如何发挥优势的。
在今天市场上存在的几大手机生产商,苹果、三星、小米、华为、OPPO、VIVO,你会发现这些企业或多或少都跟手机有关系,它是利用原来的优势做出来。
第一个苹果,原来最早是做电脑、电子产品,后来它又做了MP3,MP3是它第一个做比较小的个人交互界面的电子产品,因为它有了这样的优势,才继续做了手机。
三星本来有电子产品的基因。
华为呢,华为原来做通讯产品,技术也很厉害,包括OPPO和VIVO原来都是做电池产品的,延续了原来的优势。
小米为什么能成功?其实原来是做软件的,原来做金山毒霸、WPS,所以小米的成功是从MUI开始的,它走了另外一条路线,是先从系统软件开始做,然后走到手机领域,它一定是有一定优势才进来的,很少有完全没有优势,你去干一个新的行业,尤其是复杂的技术行业,这是很难的。
你看戴森,戴森原来做吸尘器,后来做干手机,后来做电风扇,后来做吹风机,为什么?
很多人解释叫品类拓展,其实不是品类拓展,它为什么不做电饭煲拓展小家电?因为高速马达是它的核心优势,它在这上面积累了6000项专利,所以你看吸尘器、干手机、电风扇、吹风机,全是不是吹就是吸,在这方面具有技术优势的。
包括本田,王石曾经说过,我们要学习丰田,我们不学本田,为什么?因为本田不是万科的学习对象,因为本田是以发动机为核心做各种各样的以发动机为基础的产品。
本田还做火箭,还做割草机,还做摩托车,做汽艇,做汽车,因为发动机是它的核心优势,所以它可以围绕发动机做很多产品。但是丰田是围绕着车做所有的服务,本田其实是在发挥它发动机的优势。
包括瑞幸,瑞幸的延展,早期是神舟租车,到后来共享出行,一个是做线下,一个是做线上,积累了经验,结合起来,咖啡就变成了瑞幸咖啡,它其实用了原来的数据优势和线下运营能力,不是凭空出来的。
它做奶茶就不太行,为什么?因为奶茶比咖啡复杂太多了,奶茶是更接近餐饮行业的一个产品,咖啡反倒是更接近制造业的,所以它做咖啡可以,后来它又做包装咖啡了,2023年第一季度瑞幸的包装咖啡增长了170%。
古茗从奶茶到物流,到茶园,到设备维修,到薯条,怎么发挥它的优势?为什么做薯条?都是围绕奶茶来做的,为什么它要做薯条呢?就是因为外卖需要凑单。
1万家门店,点个奶茶不够起送价,来一包薯条凑个单,这叫经营的逻辑,跟它卖什么东西没关系,奶茶就不能卖薯条吗?可以,就是因为经营的逻辑讲得通。
如何获得卓越的经营业绩
我跟大家分享我认为在企业经营历史上非常著名的一篇论文,《如何获得卓越的经营业绩》,这是迈克尔·波特在哈佛的时候写过一篇论文,他提出了两个获得卓越经营业绩的方法。
第一个叫提升经营的效率。
提升经营效率,就是在一组相同的经营活动中做得更好。有几个重点叫做相同的经营活动做得更好。
还是举餐饮的例子,比如你做美团,我也做美团,你做抖音,我也做抖音,你做外卖,我也做外卖,你做点评,我也做点评。
但是我所有环节都比你效率高,我就比你赚钱,南城香就是这样,这叫做在一组相同的经营活动中做得比别人更好。
什么叫更好?就是在相同的条件下我的成本更低、速度更快、效率更高,比如打印纸用两面打印,你的成本更低,速度更快,效率更高,你整个成本就会降下来。
举一个生活中的例子,早晨起来穿裤子,你觉得先穿袜子再穿裤子效率高,还是先穿裤子再穿袜子效率高?
大家想一想,你先穿裤子,坐在床上穿裤子,起来把裤子一提,然后坐下来穿袜子,然后再起来,四个动作。先穿袜子,穿上袜子,再穿裤子,然后起来提一下,走了,三个动作,对不对?节省了一个动作,你的效率就更高。
这就是持续改善,永远都要想到你怎么才能提升经营效率。
所以说你要相信,在任何领域,总有人比你做得更好,总有人比你做得更高效。
前两天我遇到一个做茶叶的品牌,我也很惊讶,我以前说茶叶其实做不大的,其实包括我们很知名的那些茶叶,其实都没有超过20亿的。
但是那个茶叶在抖音上已经月销量超过2亿了,它已经超过全国所有的茶叶品牌了,人家擅长做抖音,没办法,而且人家确实是赚钱的。
所以通过持续改善,就会让我们今天做的任何工作,都是未来表现最差的一天。因为我们明天比我们今天做得更好,我们后天比明天做得更好。这就是持续改善。
第二个叫做建立战略壁垒。
建立战略壁垒是什么?你要确定一个经营方向,然后用一组独特的经营活动来形成它难以模仿的壁垒。
举个南城香的例子。
南城香成立于1998年,它叫做基于北京城区的全时段社区快餐,它有这样一个方向,我就要基于这个方向去做独特的经营活动。前面我们同事分享南城香的案例,已经说得很详细了。(参考:快餐坪效王,环环相扣,节节生利|南城香x小马宋案例复盘)
比如说别人在多板块选址,南城香只在社区做。为什么?因为你在shopping Mall做,早餐、夜宵做不了。你在写字楼做,只能做周一到周五,节假日做不了。我在社区做,早餐可以做,晚餐可以做,午餐可以做,夜宵可以做,全年可以365天无休,可以做到全时段,我只做这个。
这是我的战略方向,别人是一日两餐,我一日五餐,所以我就是用一组独特的经营活动建立了我的战略壁垒,而且你还学不会,我告诉你,你也学不会。所以这个叫做建立战略壁垒。围绕着你的战略方向建立起难以模仿的壁垒。
它放弃了什么?它放弃了很多,写字楼不能开店,shopping Mall不能开店,北京以外不开店,但是人家一个店顶十家店,在北京可以开300家店,可以再继续开嘛。
总结
为什么我们会觉得营销很重要?是因为营销是我们能够看到的其他企业最直接的东西。
你看到的都是营销,因为它的营销都在做,你看到好像以为说这个营销做了就成功了,你才会觉得营销就是这个企业制胜的法宝。
但是今天你会发现那么多有名的品牌,要么不赚钱,要么就已经关店了,那些所谓的网红、新消费品,只有这些踏踏实实做经营的企业,它才最后留了下来。
所以我们营销看起来很好,其实企业经营是冰山下面的那一部分,你没有看到,我们刚才看到的是冰山的一角,但是你以为那是全部,实际上企业营销的作用没有那么大。
所以请大家记住一句话:企业经营是比营销更高一级的问题。
如果你企业经营做好了,营销理论的各种吵架,说你的定位不行,在企业层面看都是鸡毛蒜皮的琐事。
对程序进行优化,通常是指优化程序代码或程序执行速度。优化代码和优化速度实际上是一个予盾的统一。一般是优化了代码的尺寸,就会带来执行时间的增加;如果优化了程序的执行速度,通常会带来代码增加的副作用。很难鱼与熊掌兼得,只能在设计时掌握一个平衡点。
1、程序的书写结构
程序中使用的用户标识符除要遵循标识符的命名规则以外,一般不要用代数符号(如a、b、x1、y1)作为变量名,应选取具有相关含义的英文单词(或缩写)或汉语拼音作为标识符,以增加程序的可读性,如:count、number1、red、work 等。
C 语言是一种高级程序设计语言,提供了十分完备的规范化流程控制结构。因此在采用C 语言设计单片机应用系统程序时,首先要注意尽可能采用结构化的程序设计方法,这样可使整个应用系统程序结构清晰,便于调试和维护。
对于一个较大的应用程序,通常将整个程序按功能分成若干个模块,不同模块完成不同的功能。各个模块可以分别编写,甚至还可以由不同的程序员编写,一般单个模块完成的功能较为简单,设计和调试也相对容易一些。在C 语言中,一个函数就可以认为是一个模块。
所谓程序模块化,不仅是要将整个程序划分成若干个功能模块,更重要的是,还应该注意保持各个模块之间变量的相对独立性,即保持模块的独立性,尽量少使用全局变量等。对于一些常用的功能模块,还可以封装为一个应用程序库,以便需要时可以直接调用。但是在使用模块化时,如果将模块分成太细太小,又会导致程序的执行效率变低(进入和退出一个函数时保护和恢复寄存器占用了一些时间)。
在程序化设计过程中,对于经常使用的一些常数,如果将它直接写到程序中去,一旦常数的数值发生变化,就必须逐个找出程序中所有的常数,并逐一进行修改,这样必然会降低程序的可维护性。因此,应尽量当采用预处理命令方式来定义常数,而且还可以避免输入错误。
能够使用条件编译(ifdef)的地方就使用条件编译而不使用if 语句,有利于减少编译生成的代码的长度。
对于一个表达式中各种运算执行的优先顺序不太明确或容易混淆的地方,应当采用圆括号明确指定它们的优先顺序。一个表达式通常不能写得太复杂,如果表达式太复杂,时间久了以后,自己也不容易看得懂,不利于以后的维护。
对于程序中的函数,在使用之前,应对函数的类型进行说明,对函数类型的说明必须保证它与原来定义的函数类型一致,对于没有参数和没有返回值类型的函数应加上“void”说明。如果果需要缩短代码的长度,可以将程序中一些公共的程序段定义为函数。如果需要缩短程序的执行时间,在程序调试结束后,将部分函数用宏定义来代替。注意,应该在程序调试结束后再定义宏,因为大多数编译系统在宏展开之后才会报错,这样会增加排错的难度。
因为全局变量是放在数据存储器中,定义一个全局变量,MCU 就少一个可以利用的数据存储器空间,如果定义了太多的全局变量,会导致编译器无足够的内存可以分配;而局部变量大多定位于MCU 内部的寄存器中,在绝大多数MCU 中,使用寄存器操作速度比数据存储器快,指令也更多更灵活,有利于生成质量更高的代码,而且局部变量所的占用的寄存器和数据存储器在不同的模块中可以重复利用。
许多编译程序有几种不同的优化选项,在使用前应理解各优化选项的含义,然后选用最合适的一种优化方式。通常情况下一旦选用最高级优化,编译程序会近乎病态地追求代码优化,可能会影响程序的正确性,导致程序运行出错。因此应熟悉所使用的编译器,应知道哪些参数在优化时会受到影响,哪些参数不会受到影响。
1、选择合适的算法和数据结构
选择一种合适的数据结构也很重要,比如在一堆随机存放的数据中使用了大量的插入和删除指令,比使用链表要快得多。数组与指针具有十分密切的关系,一般来说指针比较灵活简洁,而数组则比较直观,容易理解。对于大部分分的编译器,使用指针比使用数组生成的代码更短,执行效率更高。
但是在Keil 中则相反,使用数组比使用的指针生成的代码更短。
能够使用字符型(char)定义的变量,就不要使用整型(int)变量来定义;能够使用整型变量定义的变量就不要用长整型(long int),能不使用浮点型(float)变量就不要使用浮点型变量。当然,在定义变量后不要超过变量的作用范围,如果超过变量的范围赋值,C 编译器并不报错,但程序运行结果却错了,而且这样的错误很难发现。
通常使用自加、自减指令和复合赋值表达式(如a-=1 及a+=1 等)都能够生成高质量的程序代码,编译器通常都能够生成inc 和dec 之类的指令,而使用a=a+1 或a=a-1之类的指令,有很多C 编译器都会生成2~3个字节的指令。
(1) 求余运算
a = a % 8;
可以改为:
a = a & 7;
说明:位操作只需一个指令周期即可完成,而大部分的C 编译器的“%”运算均是调用子程序来完成,代码长、执行速度慢。通常,只要求是求2n 方的余数,均可使用位操作的方法来代替。
(2) 平方运算
a = pow(a, 2.0);
可以改为:
a = a * a;
说明:在有内置硬件乘法器的单片机中(如51 系列),乘法运算比求平方运算快得多,因为浮点数的求平方是通过调用子程序来实现的,在自带硬件乘法器的AVR 单片机中,如ATMega163 中,乘法运算只需2 个时钟周期就可以完成。既使是在没有内置硬件乘法器的AVR单片机中,乘法运算的子程序比平方运算的子程序代码短,执行速度快。如果是求3 次方,如:
a = pow(a, 3.0);
更改为:
a = a * a * a;
(3) 用移位实现乘除法运算
a = a*4;
b = b/4;
可以改为:
a = a << 2;
b = b >> 2;
说明:通常如果需要乘以或除以2n,都可以用移位的方法代替。在ICCAVR 中,如果乘以2n,都可以生成左移的代码,而乘以其它的整数或除以任何数,均调用乘除法子程序。用移位的方法得到代码比调用乘除法子程序生成的代码效率高。实际上,只要是乘以或除以一个整数,均可以用移位的方法得到结果,如:
a = a * 9;
可以改为:
a = (a << 3) + a;
通常使用的延时函数均采用自加的形式:
void delay (void)
{
unsigned int i;
for (i=0; i<1000; i++);
}
将其改为自减延时函数:
void delay (void)
{
unsigned int i;
for (i=1000; i>0; i--);
}
两个函数的延时效果相似,但几乎所有的C 编译对后一种函数生成的代码均比前一种代码少1~3 个字节,因为几乎所有的MCU 均有为0转移的指令,采用后一种方式能够生成这类指令。在使用while 循环时也一样,使用自减指令控制循环会比使用自加指令控制循环生成的代码更少1~3 个字母。
用while 循环时有以下两种循环形式:
unsigned int i;
i = 0;
while (i<1000)
{
i++;
//用户程序
}
或:
unsigned int i;
i = 1000;
do
{
i--;
//用户程序
}
while (i>0);
在这两种循环中,使用do…while循环编译后生成的代码的长度短于while循环。
在程序中一般不进行非常复杂的运算,如浮点数的乘除及开方等,以及一些复杂的数学模型的插补运算,对这些即消耗时间又消费资源的运算,应尽量使用查表的方式,并且将数据表置于程序存储区。如果直接生成所需的表比较困难,也尽量在启动时先计算,然后在数据存储器中生成所需的表,后以在程序运行直接查表就可以了,减少了程序执行过程中重复计算的工作量。
转自:https://mp.weixin.qq.com/s/2gjcRjxYdxnPZacZ78YZ9A
美经济飙升期正结束,
未来旗下大部分企业会报告较低收益
美政府不会让银行保险存款无保障,
就像不会让债务上限导致违约
过去10年,只有一家保险公司取得压倒性胜利
AI可以改变全球面貌,但不会超过人类智能
商业地产风暴对伯克希尔影响不大,
最终商业地产的拥有者会是这些人
价值投资的收益更少了,
给你机会的是“别人做蠢事”
谈及遗产,只要持有好股票
铁路脱轨对BNSF的影响
美国政府在解决气候问题上成效不大,
过程会很漫长
美国现在面临挑战非常大
谈及副董事长才能
对增持五家日本商社感到“惊喜”
苹果业务非常优质,曾考虑卖出一些“很愚蠢”
关于中美关系
关于台积电投资
谈及格雷厄姆,
提到如果做出了一两个正确的决定就胜利了
车险行业赚钱更难了
伯克希尔是自动驾驶模式,
优质企业会自行运转
银行业情形和以前差别不大,
恐慌一直会传染
对银行投资持谨慎态度,只持有一家重仓股
没有取代美元储备货币地位的候选
年轻人成功的要点
谈到分销商和流媒体
会追加新能源投资
目前对西方石油持股,很满意
谈到马斯克
买好公司机会不如以前多,
仍可能现金回购股票
企业最少的15%税收,在计算商业税法上,延迟报税的情况,是否可以延展?比如用新能源是否可以节约税?
谈及喜诗糖果、NetJet和汽车行业
不担心美联储,反对疯狂印钱令通胀暴涨
希望所有国家都成功,
而非美国牺牲世界获取成功
谈及银行财报标准和伯克希尔不同
转自:https://mp.weixin.qq.com/s/WEwRDCzO9iHa_4avyMLQyQ