10 刘一儿

尚未进行身份认证

纸上得来终觉浅,绝知此事要躬行。

等级
TA的排名 7w+

linux c编程 int转16进制

分高低位进行取值: int checkSum = 7793; printf("checkSum = %#X \n " , checkSum); int xl= checkSum & 0xff ; int xh = (checkSum & 0xff00) >> 8; printf("xl = %#X \n " , xl); printf("xh = %#X \n " , xh);运行结果:checkSum = 0X

2020-05-31 17:33:45

C语言把256位二进制转为16进制

需求: 有256点数据,每个点有两个取值范围,0表示黑色,1表示白色,然后要把这256个点打包成32个BYTE。void make_data_package(char buff[] , long out[]){ char tempBuffer[8] = {0}; char *end ; for (int i=0 , targetIndex =0, tIndex =0; i<256; i++ , tIndex++ ) { ...

2020-05-31 12:34:35

设计模式之 《适配器模式》

介绍适配器模式就是把一个接口或类转换成其他的接口或类。该模式隶属于 {结构型模式}Target目标角色 该角色定义把其他类转换为何种接口,也就是我们的期望接口。Adaptee源角色 它是已经存在的、 运行良好的类或对象。Adapter适配器角色 适配器模式的核心角色,其他两个角色都是已经存在的角色,而适配器角色是需要新建立的,它的职责非常简单:把源角色转换为目标角色。优点:适配器模式可以让两个没有任何关系的类在一起运行;增加了类的透明性;提高了类的复用度;灵活性非常好应...

2020-05-29 09:19:23

设计模式之状态模式学习

介绍结构:State——抽象状态角色 接口或抽象类,负责对象状态定义,并且封装环境角色以实现状态切换。 ConcreteState——具体状态角色 每一个具体状态必须完成两个职责:本状态的行为管理以及趋向状态处理,通俗地说,就是本状态下要做的事情,以及本状态如何过渡到其他状态。 Context——环境角色 定义客户端需要的接口,并且负责具体状态的切换。 环境角色有两个不成文的约束: 把状态对象声明为静态常量, 有几个状态对象就声明几个静态常量。 环境角色具有状态抽象角色定义的所有行为

2020-05-23 11:23:59

抽象工厂模式学习

介绍抽象工厂模式主要有四个关键元素:抽象产品(Product):负责定义产品的共性,实现对事物最抽象的定义。 具体产品(ConcreteProduct):具体产品可以由多个。 抽象工厂(Factory):工厂类必须实现这个接口,负责定义产品对象的产生。 具体工厂(ConcreteFactory):具体如何产生一个产品的对象,一个具体工厂与一个具体产品一一对应。优点良好的封装性, 代码结构清晰 工厂方法模式的扩展性非常优秀 。 在增加产品类的情况下, 只要适当地修改具体的工厂类或扩展一个

2020-05-22 08:19:22

设计模式之 观察者模式(Publish/Subscribe)模式

介绍观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。 这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。[DP]Subject被观察者 定义被观察者必须实现的职责,它必须能够动态地增加、取消观察者。它一般是抽象类或者是实现类,仅仅完成作为被观察者必须实现的职责:管理观察者并通知观察者。 Observer观察者 观察者接收到消息后,即进行update(更新方法)操作,对接收到的信息进行处理。 ConcreteSubject具体的被观察者

2020-05-19 08:47:39

建造者模式学习

介绍建造者模式中, 有如下4个角色:Product产品类 通常是实现了模板方法模式, 也就是有模板方法和基本方法 Builder抽象建造者 规范产品的组建, 一般是由子类实现。 ConcreteBuilder具体建造者 实现抽象类定义的所有方法, 并且返回一个组建好的对象。 Director导演类 负责安排已有模块的顺序, 然后告诉Builder开始建造。优点:封装性;建造者独立,容易扩展;便于控制细节风险使用:相同的方法,不同的执行顺序具有不同结果; 多个部件或零件,都.

2020-05-15 09:00:50

外观模式学习

介绍Facade外观模式(有的也叫门面) 定义:Facade模式为一组具有类似功能的类群,比如类库,子系统等等,提供一个一致的简单的界面。这个一致的 简单的界面被称作facade。 客户端可以调用这个角色的方法。 此角色知晓子系统的所有功能和责任。 一般情况下,本角色会将所有从客户端发来的请求委派到相应的子系统去, 也就说该角色没有实际的业务逻辑, 只是一个委托类。 subsystem子系统角色 可以同时有一个或者多个子系统。 每一个子系统都不是一个单独的类, 而是一个类的集合。 子系统并不知

2020-05-14 08:39:08

模板方法模式

介绍Template Method模式也叫模板方法模式,是行为模式之一,它把具有特定步骤算法中的某些必要的处理委让给抽象方法,通过子类继承对抽象方法的不同实现改变整个算法的行为模板方法模式是由抽象模板和具体模板构成,抽象模板分为两类基本方法:基本操作,有子类实现的方法,在模板方法中被调用 模板方法:可以由一个或多个,是一个具体的方法,也就是一个框架,实现对基本方法的掉队,完成固定的逻辑。为了防止恶意的操作一般模板方法都加上final关键字不允许被覆写具体模板实现抽象模板,但只覆写基本方法优点

2020-05-12 10:39:12

原型模式

介绍原型模式(Prototype),用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。核心:是提供一个clone方法,通过该方法进行对象的拷贝。优点:性能优良;逃避构造函数的约束缺点:每个类都要重写有clone方法,对于以后的类需要全面的考虑所有成员的拷贝应用:一个复杂对象多个修改者的场景,该对象应该具有自我复制功能,统一一套接口。资源优化场景、性能...

2020-05-08 22:24:41

C++设计模式之《代理模式》

简介:通过代理模式可以在原有业务逻辑外增加一定的约束,比如排序、范围限制等等,无论具体主体还是代理主体都实现抽象主题Subject抽象主题角色 抽象主题类可以是抽象类也可以是接口, 是一个最普通的业务类型定义, 无特殊要求。 RealSubject具体主题角色 也叫做被委托角色、 被代理角色。业务逻辑的具体执行者。 Proxy代理主题角色 也叫做委托类、 代理类。 它负责对真实角...

2020-04-29 08:34:52

设计模式之《装饰模式》

问:现有类 A,如果想对类A进行功能增强,有几种方法?答:在C++种,常用的3种,分别是:直接修改类A的代码。但是不符合开闭原则 使用继承,让派生类B来扩充类A的功能 使用关联/组合的方式,让类C包含类A,然后对A进行增强(装饰模式基于此方法)装饰模式: 装饰模式(Decorator Pattern)是动态的给一个对象添加一些额外的职责,就增加功能来说,此模...

2020-04-21 08:45:13

设计模式之《简单的工厂模式和工厂模式》

工厂模式和简单工厂模式比较:UML图:简单的工厂模式

2020-04-14 09:31:31

设计模式之《简单工厂模式》

简单的工厂模式简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。 简单工厂模式不属于23种GOF设计模式之一。实现方式(附图)简单工厂模式的UML类图(见右图)简单工厂模式的实质是由一个工厂类根据传入的参...

2020-04-13 09:30:08

win10没有默认的邮件客户端

最近几天开机时电脑总是蹦出来“没有默认的邮件客户端....”对于有强迫症的我,每次看到都烦的够够的。网上找了好多资料都不能有效解决。皇天不负有心人,最终还是找到了有效的解决方法。具体如下:1.打开win10系统设置,依次选择(默认应用->电子邮件->邮件)2.滚动鼠标滚轮,在下方点击“按应用程序默认值”选项中3.滚动鼠标滚轮找到邮件,点击管理4.将所有...

2020-04-13 09:26:44

Python Qt5环境搭建 (即详细又全面)

1.下载Python首先去Python官网下载需要的版本,官网连接:https://www.python.org/小插曲:具体下载哪个版本,我踩了好多坑,此处分享一下踩坑经历。本人电脑安装的是Qt5.12.3。由于没接触过python,因此第一次去官网下载,肯定下载最新的。安装完成之后,又去Qt官网下载PySide2xxx,但是怎么安装都是失败,经过不断的踩坑,终于悟出了安装过程。具体如...

2020-04-10 09:35:35

QML PathView之 PathQuad

qml中PathView元素自带一个很有意思的例子,效果如图:其中Path段代码如下: path: Path { startX: 120; startY: 100 PathQuad { x: 120; ...

2020-04-06 16:41:20

QML编程杂谈

1.计算函数执行时间和打印函数执行次数1、打印代码块时间console.time("wholeFunction");console.timeEnd("wholeFunction");2、打印执行次数console.count("fun called")2.约定俗成的规则id属性声明信号声明JavaScript函数对象属性子对象状态状态切换...

2020-04-03 19:52:46

《大话设计模式》之策略模式

大话设计模式之策略模式商场促销UML类图客户端实现方式策略模式解析商场促销先上一张图,用Qt/C++实现大话设计模式中第二章的商场促销UML类图<策略模式><简单的工厂模式>客户端实现方式简单工厂模式 CashSuper *cs = CashFactory::createCashAccept(m_comboxIndex); double to...

2020-04-03 10:04:03

sizeof指针和数组

int a[10] = {0 , 1 , 2, 3 , 4 , 5, 6, 7 , 8 , 9}; int *b = a; int (*d)[10]= &a; int c; //sizeof(数组名):返回数组所有元素占有的内存空间字节数。即计算整个数组的大小 qDebug()<<"---------a="<&lt...

2020-04-02 09:32:15

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享宗师
    分享宗师
    成功上传21个资源即可获取