- 博客(118)
- 资源 (4)
- 收藏
- 关注
原创 进程同步,信号量,互斥变量等说明
1 进程的描述1.1进程的定义和特征1.进程控制块(PCB):为了使参与并发执行的每个程序(含数据)都能独立的运行, 在操作系统中必须为之配置一个专门的数据结构。称之为进程控制块。2.进程的定义: (1)进程是程序的一次执行。 (2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动。 ★(3)进程是具有独立功能的程序在一个数据集合上的运行的过程,它是系统 进行资源调度和分配的一个独立单位。 (4)在引入进程实体之后,我们可...
2021-08-28 16:44:42
728
原创 IPC通信技术说明
**IPC通信技术说明**1.进程间通信概述1.1 管道1.2 FIFO1.3 消息队列1.4 共享内存1.5 选型小结1.进程间通信概述进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。下面对常见的的IPC技术进行调研,具体如下:1.1 管道管道:通常指无名管道,是 UNIX 系统IPC最古老的形式。特点:1)它是半双工的
2020-12-17 17:09:39
1202
原创 Sqlite3入门学习(一)
Linux环境下sqlite3的安装及常用Linux API说明环境安装Step1:一般的linux可能会自带sqlite,在安装之前先使用sqlite3命令检测一下,若显示并未安装,则进行下述操作Step2:先到 https://www.sqlite.org/download.html,下载sqlite-autoconf-*.tar.gz压缩包Step3:下载完了,把压缩包...
2020-02-14 21:50:49
1051
原创 储能变电站互动系统通讯协议 (征求意见稿)
目 录一、 术语... 3二、 系统架构... 32.1 系统物理架构... 32.1.1 系统建设目标... 52.1.2 系统架构说明... 52.2 网络安全说明... 6三、 EMS与储能主站需求响应业务Modbus_EngReq通讯协议... 63.1 MODBU...
2020-02-06 19:52:15
3569
转载 HTTP协议—— 简单认识TCP/IP协议
1、什么是TCP/IP 如果要了解一个人,可以从他归属的集体聊起来。我们的HTTP协议就属于TCP/IP协议家族中的一员,了解HTTP协议再整个网络流程中的地位,也能更加充分的理解HTTP协议。 要想了解什么是TCP/IP协议,就要知道为什么有这个协议。中国人和中国人说话,要遵循汉语的的语法结构,使用汉语的发音。当我们和外国人交流时,就要适用外国的语言了,遵循外国的语...
2019-11-28 11:54:35
601
原创 C语言文件操作函数概要(stdio.h)
C语言文件操作函数概要(stdio.h)fopen 打开一个文件fclose 关闭一个文件fgetc 从文件中读取一个字符fputc 写一个字符到文件中去fgets 从文件中读取一个字符串fputs 写一个字符串到文件中去fprintf 往文件中写格式化数据fscanf 格式化读取文件中数据fread 以二进制形式读取文件中的数据fwrite 以二进制形式写数...
2019-11-28 11:51:23
539
原创 倍福 PLC 的string操作
基于倍福的PLCString类型的函数功能介绍如下:1、两个字符串的连接:CONCATVAR_INPUT STR1 : STRING(255); STR2 : STRING(255);END_VARIL示例:LD 'SUSI'CONCAT 'WILLI'ST Var1 (* Result is 'SUSIWILLI' *)ST示例:V...
2019-11-28 11:34:20
3913
原创 MODBUS规约报文解析
MODBUS规约报文解析报文格式,报文全部为16进制,遥信状态需要转换为二进制:主站发送报文 地址 功能码 寄存器起始地址 读取数据长度 CRC校验码 01 03 01 00 00 02 C5 F7 说明(读取01地址设备03功能码遥信状态) 设备地址 设备的规约或点表查看 (遥信、遥测、遥控) 从设备的:0x0100H 寄存器读取遥信状态,可以在规约或寄存器点表中...
2018-03-27 08:59:57
23325
1
原创 DL/T645-2007 与DL/T645-1997协议解析对比
一、A相电压:1、2007版:(1)发送原始报文: 6861 01 00 00 00 00 68 11 04 33 34 34 35 17 16减33H处理后报文:68 61 01 00 00 00 00 68 11 04 00 01 01 02 17 16功能:主站请求读取电能表A相电压命令地址域:A0~A5:610100000000H控制码:C=11H,表示主站请求读电能表数据标识码:D...
2018-03-09 16:02:10
16099
1
原创 面试题39:二叉树的深度
学习了一段时间《剑指offer》现在做了一些笔试,现在陆续把笔记上传到博客,方便自己及他人上网查看。 题目一:输入一颗二叉树的根结点,求该树的深度。从根节点到叶节点经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 利用递归代码如下:struct BinaryTreeNode{ int m_data; BinaryTreeNode
2017-09-21 19:04:21
607
原创 面试题40:数组中只出现一次的数字
学习了一段时间《剑指offer》现在做了一些笔试,现在陆续把笔记上传到博客,方便自己及他人上网查看。 题目:一个整形数组中出了两个整形的数组之外,其他的数字都出现了两次。请写出程序找出这两个只出现一次的数字。要求空间复杂度是O(1),时间复杂度是O(n); 例如输入{2,4,3,6,3,2,5,5},因为只有4,6这两个数字只出现了一次,其他都出现两次所以输
2017-09-21 19:01:23
1324
原创 面试题41:和为s的两个数字 VS 和为s的连续正整数序列
学习了一段时间《剑指offer》现在做了一些笔试,现在陆续把笔记上传到博客,方便自己及他人上网查看。 题目一:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,输出任意一对即可; 例如输入{1,2,4,7,11,15}和数字15.由于4+11=15,则输出4和11;思路,两层循环暂时不考虑,因为时间复
2017-09-21 18:44:49
524
原创 面试题42:翻转单词顺序 VS 左旋转字符串
学习了一段时间《剑指offer》现在做了一些笔试,现在陆续把笔记上传到博客,方便自己及他人上网查看。 题目一:输入一个英文句子,翻转句子中的单词顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字符一样处理。例如输入字符串“I am a student.”,则输出“student. a am I”。 思路:将I am a student.翻转得到.tn
2017-09-21 18:33:08
907
原创 面试题43:n个骰子的点数
学习了一段时间《剑指offer》现在做了一些笔试,现在陆续把笔记上传到博客,方便自己及他人上网查看。 题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能值得出现概率。 一共6个面,n个骰子所有点数最小值为n,最大值为6n。n个骰子的排列组合为6^n。要解决这个问题,我们需要先统计出每一个点数出现的次数,然后把每一个点数出现的
2017-09-21 18:25:25
590
原创 面试题44:扑克牌的顺子
学习了一段时间《剑指offer》现在做了一些笔试,现在陆续把笔记上传到博客,方便自己及他人上网查看。 题目:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的,2-10为数字本身,A为1,J=11,Q=12,K=13;而大小王可以看成任意数字。思路:大小王是特殊的数字,把它设置为0.接下来分为三个步骤 1、首先把数组排序;
2017-09-21 18:22:02
383
原创 面试题45:圆圈中最后剩下的数字
学习了一段时间《剑指offer》现在做了一些笔试,现在陆续把笔记上传到博客,方便自己及他人上网查看。题目:0,1,2,3……n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。 思路:本题是约瑟夫环的问题。有两种解法:1 用环形链表模拟圆圈 2 分析每次被删除的数字规律并直接计算出圆圈中最后剩下的数字。解法一:创建共有n
2017-09-21 17:15:36
445
原创 面试题46:求1+2+3+4+……n
学习了一段时间《剑指offer》现在做了一些笔试,现在陆续把笔记上传到博客,方便自己及他人上网查看。题目:求1+2+3+……+n,要求不能使用乘除法,for,while,if,else,switch。Case等关键字及条件判断语句(A?B:C)。 解法一:利用构造函数求解,将类的数据成员声明为静态类型,外部定义,求n个数的和,我们可以创建n个实例,构造函数会被调用n次,代码如下:
2017-09-21 17:13:13
1419
原创 面试题47:不用加减乘除做加法
学习了一段时间《剑指offer》现在做了一些笔试,现在陆续把笔记上传到博客,方便自己及他人上网查看。 题目:写一个函数,求两个整数之和,要求在函数体内不得使用+,-,×,÷四则运算符号。 思路:分三步; 第一步:相加不考虑进位情况,用异或来处理 第二步:考虑进位信息,用与操作,左移一位处理 第三步:将第一步和第二部的结果相加(其实就是重复第一步,第二
2017-09-21 17:09:17
373
原创 面试题48:不能被继承的类
题目:用C++ 设计一个不能被继承的类 常规解法:在C#中定义了关键字sealed,被这个关键字修饰的类不能被继承;在Java中同样也有关键字final,C++中没有类似的关键字,需要我们自己造轮子,在C++的子类的构造函数会自动调用父类的构造函数,析构函数也是如此,如果我们把它的构造函数和析构函数都定义为私有函数。 如果构造和析构都是私有,那么怎样才能得到该类的实
2017-09-21 17:05:47
616
原创 面试题49:把字符串转换成整数
//考虑不同的输入情况bool g_flag = true;int atoi(char a[]){ if (a == NULL) { g_flag = false; return 0; } int i=0, sum = 0, digitSign = 1; char* p = a; if (*p == '-') { digitSign = -1; p++; }
2017-09-21 17:01:25
360
转载 技术岗网上测评-智力题
A.逻辑推理 1、你让工人为你工作7天,给工人的回报是一根金条。金条平分成相连的7段 ,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给你 的工人付费? 2、请把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份。 3、小明一家过一座桥,过桥时是黑夜,所以必须有灯。现在小明过桥要1秒, 小明的弟弟要3秒,小明的爸爸要6
2017-09-01 13:14:02
19225
1
转载 技术岗-网上测评智力题
A.逻辑推理 1、你让工人为你工作7天,给工人的回报是一根金条。金条平分成相连的7段 ,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给你 的工人付费? 2、请把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份。 3、小明一家过一座桥,过桥时是黑夜,所以必须有灯。现在小明过桥要1秒, 小明的弟弟要3秒,小明的爸爸
2017-09-01 13:11:41
5595
原创 面试题50:树中两个节点的最低公共祖先
当每个节点都有指向父节点的指针时,可转换成两个链表的公共祖先。当该树是一个二叉搜索树时,需要从树的根节点开始于两个输入的节点比较。如果当前节点的值都比两个节点的值大,那么最低的公共祖先一定在该节点的左子树中,如果都小则在右子树中。利用递归直到找到当前结点的值位于两个节点的中间那么这个便是最低的公共祖先;假设既没有父节点,也不是二叉搜索树,则用下边思路:假设输入节点是F和H,判断
2017-08-29 16:41:37
490
转载 求整数二进制表示中的1的个数
题目:输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。分析:这是一道很基本的考查位运算的面试题。包括微软在内的很多公司都曾采用过这道题。一个很基本的想法是,我们先判断整数的最右边一位是不是1。接着把整数右移一位,原来处于右边第二位的数字现在被移到第一位了,再判断是不是1。这样每次移动一位,直到这个整数变成0为止。现在的
2017-08-25 20:54:38
805
原创 计算机中浮点数的存储方式
参考网址:http://blog.chinaunix.net/uid-28458801-id-3507427.html根据国际标准IEEE 754,任意一个二进制浮点数V可以表示成下面的形式: V = (-1)^s×M×2^E (1)(-1)^s表示符号位,当s=0,V为正数;当s=1,V为负数。 (2)M表示有效数字,大于等于1,小于2。 (3)2^E表示指数位。
2017-07-11 20:35:24
860
转载 C++中的new和c中的malloc区别
1、new 是c++中的操作符,malloc是c 中的一个函数2、new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而malloc则只分配内存,不会进行初始化类成员的工作,同样free也不会调用析构函数3、内存泄漏对于malloc或者new都可以检查出来的,区别在于new可以指明是那个文件的那一行,而malloc没有这些信息。4.new可以看成两个动作
2017-06-26 23:11:14
1524
1
原创 C数据结构设计中,表首结点和二叉树根结点的头指针——传指针还是传指针的指针?
在链表中添加节点,为什么AddToTail(ListNode** pHead,int value)的第一个形参是指向节点指针的指针?? 书上的解释如下:第一个参数pHead是一个指向指针的指针,当向一个空链表插入一个节点时,新插入的节点是链表的头指针,此时会改动头指针,因此必须把pHead参数设置为指向指针的指针。 总的来说这样做的目的是为了应对“空链表”的情况
2017-06-20 23:02:00
1494
转载 java面试全集(上)
原文地址:http://blog.csdn.net/jackfrued/article/details/44921941/2013年年底的时候,我看到了网上流传的一个叫做《Java面试题大全》的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对这个所谓的《Java面试大全》进行了全面的修订并重新发布在我的CSDN博客。在修订
2017-06-19 21:33:04
4217
原创 设计模式—访问者模式(二十三)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 访问者模式(Visitor):封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据
2017-06-18 23:10:16
456
原创 设计模式—享元模式(二十二)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 享元模式(Flyweight),运用共享技术有效地支持大量细粒度的对象。
2017-06-14 21:24:38
431
原创 设计模式—中介者模式(二十一)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 中介者模式:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显示的相互引用,从而
2017-06-14 19:39:51
482
原创 设计模式—责任链模式(二十)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 责任链模式(Chain of Responsibility):使多个对象都有机会处理请求,
2017-06-13 22:53:25
421
1
原创 设计模式—命令模式(十九)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 命令模式(Command):将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数
2017-06-12 22:38:36
387
1
原创 设计模式—桥接模式(十八)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 当一个抽象可能有多个实现时,通常用继承协调他们,抽象类定义对该抽象的接口,而具体的子类则用
2017-06-12 21:09:29
464
1
原创 设计模式—单例模式(十七)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 单例模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访
2017-06-11 17:47:19
379
原创 设计模式—迭代器模式(十六)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 迭代器模式:提供一种方法顺序访问一个聚敛对象的各个元素,而又不暴露该对象的内部表示。
2017-06-11 12:45:20
328
1
原创 设计模式—组合模式(十五)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 组合模式(Composite):将对象组合成树形结构以表示‘部分—整体’的层次结构。组合模
2017-06-09 23:08:58
338
1
原创 设计模式—备忘录模式(十四)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 备忘录(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保
2017-06-08 20:37:08
397
1
原创 设计模式—适配器模式(十三)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 适配器模式(Adapter):讲一个类的接口转换成客户希望的另一个接口。Adapter模式
2017-06-08 20:33:35
369
原创 设计模式—状态模式(十二)
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。 状态模式(State):当一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它
2017-06-08 20:29:10
405
GCC版本window版本mingw-w64
2022-08-26
《剑指offer笔记》
2017-09-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人