- 浏览: 56628 次
- 性别:
- 来自: 武汉
最新评论
-
coolspeed:
牛刀了。不都单片机或者中规模时序芯片做吗。
8255接8只发光二极管,编程使之依次亮灭 -
ErinToJerry:
端口地址译码(DA地址线)后选中某端口,然后进行数据传输(DB ...
I/O端口地址译码 -
sw1982:
dian的数据结构课是精华。旁听了好多次
培训总结|华中科技大学Dian团队新人培训第1课 -
zhouxwyeah:
ErinToJerry 写道spyker 写道失恋就是吃饭
没 ...
有一种爱叫做放手 -
ErinToJerry:
spyker 写道失恋就是吃饭没失恋啊。这还没恋呢。嘿~
有一种爱叫做放手
文章列表
写完Java节拍器,本以为能够很容易的过渡到Android节拍器。后来发现不对。在网上查询了之后,才知道,Android考虑到线程安全问题,不允许在线程中执行UI线程。这里我们要学到一个Android中重要的类:android.os.Handler,这个可以实现各处线程间的消息传递。
我们可以在原先的TimerTask子类MyTimerTask的方法run()中,只是给Handler发送一个Message。我们让Handler进行UI线程上的操作(在节拍器的例子中,指的是更新那个显示节拍的控件的数值)。
最终节拍器打节拍的同时发生。(由于时间原因,音量控制 ...
最近准备在Android下写一个节拍器,因为不熟悉Android开发的一系列东西,所以想着先用Java写一个节拍器再说。好歹,能把算法弄明白。在节拍器这个定时执行程序中,有两个最重要的类:Timer和TimerTask。
在讲解节拍器算法之前,我们来看一个定时程序的简单例子:
import java.util.Timer;
import java.util.TimerTask;
public class Test {
//因为我们要在静态方法main中创建对象
//所以要声明为static,静态的
static class MyTimerTask extends Ti ...
这是一个简单的“微机原理与接口技术”的趣味实验。实验要求的完整表述为:将8255的C口接上8个发光二极管,编程使之依次亮灭。已知8255端口地址为39CH~39FH。(39FH为控制端口地址,39CH,39DH,39EH分别为A端口、B端口、C端口的端口 ...
后缀表达式又叫逆波兰表达式。那么如何讲中缀表达式转化为后缀表达式呢? 比如已知中缀表达式a+b*c+(d*e+f)*g,如何将其转化为后缀表达式abc*+de*f+g*+呢?有4个基本原则。
1. 当读到操作数时,立即输出(由后缀表达式的形式明显可以看出,操作数的输出优先级要比操作符要高);当读到操作符时,并不立即输出,而是将其存于堆栈中。 2. 如果见到右括号,那么将栈元素弹出,直到遇到左括号。但是左括号只是弹出,并不输出。 3. 如果见到其他符号,我们将栈中输出优先级更高(或者相同)的符号全部弹出。然后将此符号入栈。(即把别人挤出去之后 ...
1. I/O端口概念
I/O端口是接口电路中能被CPU直接访问的寄存器。访问端口就是访问接口电路中的寄存器。如下图所示为PC机的端口分配情况:
(查看方式:【所有程序】-【附件】-【系统工具】-【系统信息】-【硬件资源】-【I/O】
一个接口电路(外设)通常拥有不止一个端口,如命令口、状态口、数据口等。如图中的System timer就有4个端口,端口地址0x00000050~0x00000053。(0x表示:16进制表示法)
2. 端口地址编码形式
有统一编制和独立编制两种方式。常用的为独立编制形式,即外设端 ...
听闻某学长被内推到华为面试,结果因为答不上补码是什么而被毙。旷世悲剧啊。让我们来稍微回顾一下下。
在计算机系统中,数值用补码来表示(存储)。这样做的好处有很多。计算机采用补码运算非常方便(计算机中数据受字长的限制,数据的运算属于有模运算,并且对运算结果能方便地按模丢掉),而且可使减法运算由加法运算实现。
我们不管补码的标准化定义(始终觉得那是数学家做的事情),直接来看补码的求法。
正数的补码,即是正数的原码;
负数的补码,符号位不变,数值部分取反,然后末位加1.
x=0.100101,
则[x]原 ...
常量是在程序运行过程中值不可改变的数据。
C语言中整型常量有3中书写形式:
十进制。如0,123,-123
八进制。如020,相当于10进制的16。我们在常数的开头加上数字0,表示这是八进制表示的常数
十六进制。如0x20,相当于10进制的32(我们总是习惯用10进制的思维)。我们在常熟的开头加上一个数字0和一个英文字母X(或者小写的x)
整型常量也可在整数之后加上字母L,如123L,表示它是long int型的。
但是值得注意的是,这3种表达形式都是为了方便用户的。其实在计算机内部,整形数据都是以二进制形式存放的,没有任何差别。就像16(十进制),020(八进制 ...
http://tieba.baidu.com/f?kz=188201859 写道
既然爱,怎会放手? 既然放手,还谈什么爱不爱? 我们何必要做虚伪的人,分手了还要标榜一下自己,说些:“是我不能给你你想要的幸福,是我伤害了你”这样虚伪的话?做一个率直的人,爱就是爱,欺骗就是欺骗,不要给自己找借口,更不要说什么“有一种爱叫做放手!”,如果某人某天对你说了:“有一种爱叫做放手”这样的话,请清醒,不要活在他给你编织的童话里,这样的话迟早有一天有个人会同样的对他说的。 或许你会不同意我的观点,会标榜对方如何伟大,为了爱而放手,那么我要告诉你,世界上没有这种人!是啊,爱的确是伟大的,为了爱还有什么山 ...
重载运算符的函数一般格式如下:
重载运算符 operator 运算符名称(形参表列)
例如,想将“+”用来Complex类(复数类)的加法计算,函数的原型可以:
Complex operator+(Complex &c1,Complex &c2);
operator是关键字,专门用来定义重载运算符的函数的。我们可以把operator+看作函数名,意思是“对运算符+重载”。
#include "stdafx.h"
#include <iostream>
using namespace std;
//复数 ...
引用的作用是给一个变量起一个别名,例如有一个变量a,想给他起一个别名b,可以写成:int a; int &b=a;
这样声明后,代表a和b就是同一变量单元,而&不是代表取地址符号,而是引用声明符,说明定义了b可并没有为它另开辟内存单元,b和a就是同一变量。
先看一个例子。
#include "stdafx.h"
#include <iostream>
using namespace std;
//注意形式参数
void swap(int a,int b)
{
...
多个类有着共同操作,但是数据类型不同。如下的3个类,getMax的功能是相同的,即求两个数中的最大值,仅仅是数据类型不同。
class Compare_int
{
private:
int x,y;
public:
Compare(int a,int b)
{
x=a;
y=b;
}
int getMax()
{
return (x>y)? x:y;
}
};
class Compare_float
{
private:
float x,y;
public:
Compare( ...
内联函数(inline function与一般的函数不同,不是在调用时发生控制转移,而是在编译阶段将函数体嵌入到每一个调用语句中。
内联函数(inline function)与编译器的工作息息相关。编译器会将程序中出现内联函数的调用表达式用内联函数的函数体来替换。
/**
*在类里定义的成员函数会被隐含指定为内置函数
*/
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
class CStudent
...
Error Message
unexpected end of file while looking for precompiled header. Did you forget to add '#include name' to your source?
http://msdn.microsoft.com/en-us/library/d7fz9ckx(VS.80).aspx 写道
Error Messageunexpected end of file while looking for precompiled header. Did you forget to add '#i ...
此语法分析程序的基本词法分析能够识别基本字、标识符、有符号整数、有符号浮点数、运算符和界符)。
语法结构定义
::= { +|-}
::= {*|/}
::=ID|num|()
num::= ( +|-|ε ) 数字数字*(.数字数字* | ε)( e ( +|-|ε ) 数字数字*|ε)
ID::=字 ...
此词法分析程序能够识别基本字、标识符、有符号整数、有符号浮点数、运算符和界符)。
仅作交流,希望能抛砖引玉,获得更为简洁有效的词法分析程序。
输入:所给文法的源程序字符串。(字符串以“#”号结束)
...