摘要: Linux在启动时需要启动很多系统服务, 它们向本地和网络用户提供了 Linux 的系统功能接口, 直接面向应用程序和用户。提供这些服务的程序是由运行在后台的守护进程(Daemons) 来执行的。编写守护进程实际上是把一个普通进程按照守护进程的特性进行改造。比如, 网络通信服务中的守护进程需要能同时 阅读全文
posted @ 2016-05-22 21:41 notepi 阅读(8633) 评论(0) 推荐(0) 编辑
摘要: 当unsigned int和int进行比较的时候会有怎样的情况?前段时间写代码的时候遇到一个问题会有当unsigned int和int进行比较到底是怎么比较的呢?所以在unsignedint与int进行比较的时候int转换成unsigned int。上面代码中我令unsignedint = -1,这本来是个错误的赋值,但是赋值到底是怎么处理的呢?在计算机中,数据是以补码的形式存储的,反码正数:正数的反码与原码相同。负数:负数的反码,符号位为“1”,数值部分按位取反。补码的表示:正数:正数的补码和原码相同。负数:负数的补码则是符号位为“1”。并且,这个“1”既是符号位,也是数值位。数值部分按位取 阅读全文
posted @ 2013-11-12 11:02 notepi 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 我们在使用c编程的时候经常会遇到头文件,前段时间我自己做了个小项目的时候,也遇到了关于头文件的问题。预处理器发现#include指令后,就会寻找后跟的文件名并把这个文件包含的内容包含到当前文件中。被包含文件的文本将替换源文件中的#include指令,就像您把被包含文件中的全部内容键入到源文件的特定位置一样(摘抄自cprimerplus)。简单来说就是,编译器把#include后跟随的文件内容都写到源文件中,写的位置就是#include放的位置。#include指令有两种形式1:#include文件名放在尖括号里面在unix系统中,尖括号告诉预处理器在一个活多个标准的目录中寻找文件。如果做开发, 阅读全文
posted @ 2013-07-05 19:20 notepi 阅读(4304) 评论(0) 推荐(2) 编辑
摘要: 写在前面:杂七杂八的看原文,直接上算法研究当 OSRdyTbl[0]中的任何一位是 1 时,OSRdyGrp 的第 0 位置 1, 当 OSRdyTbl[1]中的任何一位是 1 时,OSRdyGrp 的第 1 位置 1,当 OSRdyTbl[2]中的任何一位是 1 时,OSRdyGrp 的第 2 位置 1,当 OSRdyTbl[3]中的任何一位是 1 时,OSRdyGrp 的第 3 位置 1,当 OSRdyTbl[4]中的任何一位是 1 时,OSRdyGrp 的第 4 位置 1, 当 OSRdyTbl[5]中的任何一位是 1 时,OSRdyGrp 的第 5 位置 1,当 OSRdyTbl[.. 阅读全文
posted @ 2013-06-15 01:39 notepi 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 作者:911说明:本文参考了http://www2.tsu.edu.cn/www/cjc/online/cyuyan/,算是对其的修正,在此将本文列为原创,实有抄袭之嫌疑。甚是惭愧!位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。C语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。C语言提供的位运算符列表:运算符含义描述&按位与如果两个相应的二进制位都为1,则该位的结果值为1,否则为0|按位或两个相应的二进制位中只要有一个为1,该位的结果值为1^按位异或若参加运算的两个二进制位值相同则 阅读全文
posted @ 2013-06-15 01:38 notepi 阅读(193) 评论(0) 推荐(0) 编辑
摘要: Printf(“%x.yd”):x表示长度,y表示小数位,d表示数据类型。若x前有-则表示左对齐。若为+则表示显示数据类型+,或者-;前有0则表示不用空格填补,用0;返回值为输出的字符个数。Scanf()函数返回成功读入项目的个数。如果没有读取任何项目则返回0,错误读取返回EOF(-1)Scanf(“%d”,&x)同printf如果scanf()没有成功读取输入,就会将其留在输入队伍中#include<stdio.h>intmain(){intinput;charch;while(scanf("%d",&input)!=1){printf(&qu 阅读全文
posted @ 2013-06-15 01:37 notepi 阅读(219) 评论(0) 推荐(0) 编辑
摘要: #include<stdio.h>int main(){ char table[5],ftable[5],num=5; int a=12345; while(num--) { table[num]=a%10; a=a/10; } for (num=0;num<5;++num) { printf("%d\n",table[num]); } return 0;}while里面的,不管是num++,还是++num,效果都是一样,都是加完以后再用num;if里面num++,++num都是一样,都是执行代码以后再进行num操作。其实if里面的判别是 当num< 阅读全文
posted @ 2013-06-15 01:36 notepi 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 使用技巧:想查找的指令 直接 crl+f 然后输入指令就好了1)数据传送类指令(7种助记符)MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送;MOVC(Move Code)读取程序存储器数据表格的数据传送;MOVX (Move External RAM) 对外部RAM的数据传送;XCH (Exchange) 字节交换;XCHD (Exchange low-order Digit) 低半字节交换;PUSH (Push onto Stack) 入栈;POP (Pop from Stack) 出栈;(2)算术运算类指令(8种助记符)ADD(Addition) 加. 阅读全文
posted @ 2013-06-15 01:35 notepi 阅读(1098) 评论(0) 推荐(0) 编辑
摘要: P0口作为I/O口输出的时候时输出低电平为0输出高电平为高组态(并非5V,相当于悬空状态)。也就是说P0口不能真正的输出高电平,给所接的负载提供电流,因此必须接上拉电阻(一电阻连接到VCC),由电源通过这个上拉电阻给负载提供电流。由于P0口内部没有上拉电阻,是开漏的,不管它的驱动能力多大,相当于它是没有电源的,需要外部的电路提供,绝大多数情况下P0口是必需加上拉电阻的。1.一般51单片机的P0口在作为地址/数据复用时不接上拉电阻。2.作为一般的I/O口时用时,由于内部没有上拉电阻,故要接上上拉电阻!!3.当p0口用来驱动PNP管子的时候,就不需要上拉电阻,因为此时的低电平有效;4.当P0口用来 阅读全文
posted @ 2013-06-15 01:35 notepi 阅读(1056) 评论(0) 推荐(0) 编辑
摘要: 51\52单片机汇编学习笔记写在前面:本文适合阅读ppt是参考。笔记参考书籍为《单片机中级教程-原理及应用》,参考ppt为三明学院机电工程学院使用ppt(文章结尾提供下载地址)。笔记内容只有操作指令解析。前面多为名词解释。在学校ppt时可以参考。后面部分为部门重点及难点。有不足,欢迎补充及讨论。指令只是很少的一部分,其余部分可以参考51汇编指令查询(文章结尾提供下载地址),建议结合使用。推荐使用crl+f查询本文中的名称。文章结尾提供部分特殊寄存器介绍图片,可以参考。寄存器间接寻址:寄存器中放的是地址,通过间接寻址寄存器管理地址所指单元,在51\52单片机中叫Ri有R0和R1两个;Ri:51\ 阅读全文
posted @ 2013-06-15 01:33 notepi 阅读(633) 评论(0) 推荐(0) 编辑