自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 问答 (2)
  • 收藏
  • 关注

原创 数据的溢出、饱和、截断

溢出:指给某个变量赋值时,超出了该类型变量所能表达的范围,比如:unsigned char a;a = 260;//a的取值范围是0~255,使a=260就会导致数据溢出,a最终得到的是一个错误的值;饱和:指给某个变量赋值时,超出了该类型能表达的范围,如果采取饱和策略,就会让该变量等于一个最大值或者最小值,比如:unsigned char a;a = 260;//a溢出了,如果...

2019-12-23 15:21:35 3640

转载 小白也能看明白的openMP教程

OpenMP是一种用于共享内存并行系统的多线程程序设计方案,支持的编程语言包括C、C++和Fortran。OpenMP提供了对并行算法的高层抽象描述,特别适合在多核CPU机器上的并行程序设计。编译器根据程序中添加的pragma指令,自动将程序并行处理,使用OpenMP降低了并行编程的难度和复杂度。当编译器不支持OpenMP时,程序会退化成普通(串行)程序。程序中已有的OpenMP指令不会影响程序的...

2019-08-16 14:38:58 4260

原创 程序优化的要点——如何写出高效的代码?

程序优化的指导思想有3点:选择合适的算法和数据结构; 编写出编译器能够有效优化以转化成高效可执行代码的源代码; 将大量的计算(比如矩阵运算)分为多多个部分进行多任务并行;程序优化的几个入手点:消除不必要的工作:如不必要的函数调用、条件测试和内存引用; 利用处理器的指令并行能力,充分利用指令流水线或者超长指令字;...

2019-07-16 15:28:43 324

原创 cache line大小

我们都知道cache的作用是把主存储器的数据到寄存器的一个缓冲区,被称为高速缓存,其能够大大提高程序的性能,那么cache的性能受cache line size的影响很大。cache line大小到底有多大,其实它和和内存的一个参数关系比较大,就是ddr2,ddr3,ddr4:ddr2内存的cache line带宽是4位,cache line大小是16Byte; ddr3之后内存的cache...

2019-07-12 16:53:43 5791

原创 负数怎么用补码、反码、原码表示

所谓编码,就是一种规则,同样补码也是一种规则,它的意义在于,我们怎样从一串0和1组成的排列中解释出这这串0和1表示的数字是多少。补码的规则是:假如变量的位长度是w,补码令最高位的权重为,其它位的权重都是正。比如一个8位的有符号数二进制是10000010,那它的有符号表示应该是。很多人不明白什么是补码,就是因为没有明白补码最重要的一点:最高位的权重是同样的道理,表示负数的方式还有反...

2019-06-25 09:24:48 822

原创 c语言中左移、右移要注意的细节

左移规则:高位丢弃,低位补0右移规则:右移分为逻辑右移和算数右移,几乎所有的编译器都对有符号数使用算数右移,而对于无符号数必须用逻辑右移。逻辑右移:高位补0,低位丢弃; 算数右移:高位补最高有效位的值,低位丢弃;当移位的位数超过改变量类型的位数时,比如变量占用的内存有w位,需要移动k位,当k>w时,我们需要移动的位数shift应该是:shift = k % ...

2019-06-24 17:39:31 15889

原创 c语言中位运算之布尔运算

c语言中位运算中的布尔运算有:&、|、~、^&:按位与|:按位或~:按位非^:按位异或,相同为0,相异为1。计算规则如下:位的逻辑运算的作用:使用位向量做集合编码; 使用位向量做掩码mask; 使用异或的性质进行变量的交换值;本人喜欢编程,喜欢计算机,如果有志同道合的朋友,欢迎添加微信 mybc_0,扩展IT圈人脉,遇到技术问题...

2019-06-24 17:15:25 3533

原创 寻址和字节顺序(大小端模式)

有些数据类型的内存会跨越多个字节,如int型就占据4个字节。对于这种对象(也就是变量),必须建立两个规则:1、对象的地址是什么? 2、对象的数据在内存中是怎么排列的?也就是低地址是存储数据的低位还是高位?比如有个int类型的变量x,其所占用的内存是0x100, 0x101, 0x102, 0x103;1、对于第一个问题,在绝大多数的机器中都是使用对象所占内存的最小地址作为对象的...

2019-06-24 16:47:50 944

原创 如何理解C语言32个关键字

C语言中总共有32个关键字,所谓关键字就是我们在定义变量名或者函数名的时候要避开这些关键字。为了更好的理解这些关键字我根据它们的功能分为6种类型:1 简单数据类型的关键字char, short, int, long, float, double2 复杂数据类型的关键字struct, enum, union, typedef3 修饰数据类型的关键字auto, extern...

2019-05-24 10:30:45 247

原创 程序员修炼之道总结1--注重实效的哲学

1 我的源码让猫给吃了:要有责任心,在为失败找借口之前先把接口处理掉;2 软件的熵:熵的概念来自于物理学,指某个系统中“无序”的总量。热力学定律决定了熵总是倾向于最大化,当软件中的无序增长时,程序员称之为“软件腐烂”。“破窗户理论”告诉我们不要留着破窗户不修。3 石头汤与煮青蛙:在你准备催生变化之前要能够确定你是在做石头汤还是在做青蛙汤。4 足够好的软件:今天的了不起的软件往往比明天的...

2018-07-25 11:36:52 150

转载 ARM指令详细解释

本人喜欢编程,喜欢计算机,从事算法优化工作,常年使用arm neon,如果有志同道合的朋友,扩展IT圈人脉,遇到技术问题共同探讨,共同进步,欢迎添加微信 mybc_0,或者二维码转自:http://blog.csdn.net/chshplp_liaoping/article/details/12752749在移动平台上进行一些复杂算法的开发,一般需要用到指令集来进行加速。目前在移动...

2018-03-19 11:20:32 10108

转载 neon介绍及建议

点击打开链接http://blog.csdn.net/xiewenhao12/article/details/52583694使用NEON主要有四种方法:NEON优化库(Optimized libraries)向量化编译器(Vectorizing compilers)NEON intrinsicsNEON assembly根据优化程度需求不同,第4种最为底层,若熟练掌握效果最佳,一般也会配合第3种...

2018-03-13 16:41:39 855

原创 学习计划(20180301)

学习计划:1, 学习了解图像各种格式(NV21,i420,Sensor RAW,等),学习了解图像处理的各种基本算法 (box 滤波,gaussian 滤波,积分图,插值上下采样等)2, 学习了解SIMD向量化的概念和方法等基础知识。如果以前没有向量化的基础,可以先 从ARM NEON入门,建议自己用NEON先实现一个简单的图像算法(比如box滤波)3, 学习了解下DSP的基本架构和概念,比如D...

2018-03-04 16:00:09 214

原创 图像格式详解

1, 学习了解图像各种格式(NV21,i420,Sensor RAW,等)点击:http://www.cnblogs.com/azraelly/archive/2013/01/01/2841269.htmlYUV定义:分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用...

2018-03-03 23:02:23 373

原创 对编程注释的理解

注释写得很出色很不容易,但是写得糟糕却是人人可为止,糟糕的注释反而会帮倒忙,给阅读代码的程序员指向了一个错误的方向。很多技术文档中,已经有很全面的说明,这里不再多说,下面仅说明下自己的一些见解。怎样才能写出出色的注释1、同一个工程中,注释的格式要统一,因为代码阅读器对不同位置的注释语句,显示格式是不同的,如果格式不统一,代码的外观就会给人的感觉很杂乱,导致可读性变差。2、代码中的一...

2018-02-27 08:21:34 1321

原创 联合体的正确使用方式

工作半年多了,一直还没用到union类型,所以一直是认为union没有什么特别的用处,甚至感觉没有存在的意义。直到有一天看到了union和位段一起使用时,才发现这才是”正确的打开方式“,union不是没用,而是一但用到,都是一些高级用法。先看看union是怎么和位段连用的。typedef struct{ unsigned char DISTANCE :8; //[0] ...

2018-02-24 16:53:02 2692

原创 cache、buffer、flash的区别

cache(缓存)、buffer(缓冲)、flash(闪存)这三个存储区翻译成中文后,很容易使初学者分不清3者的区别,猛然一听这三者好像都有存储很快的意思,但是这三者的作用大不相同,下面分别对其进行解释:1、cache(缓存):cache是联接cpu和内存的一个高速存储器,使一个需要多次使用的数据只需要从内存读取一次,然后放到cache中,等下次再需要用时,只需要从cache读取即可,不需要再...

2018-02-23 09:37:47 4586 3

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除