36转十六进制是多少?
验算怎么验?全要过程?
36 除以 16 等于 2 余 4
故 24H
验算过程
2乘以16的一次方 加上 4乘以16的0次方 等于 36.
验算怎么验?全要过程?
36 除以 16 等于 2 余 4
故 24H
验算过程
2乘以16的一次方 加上 4乘以16的0次方 等于 36.
当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信
一、串口通信原理 串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到计算机端,而且也能实现计算机对单片机的控制。由于其所需电缆线少,接线简单,所以在较远距离传输中,得到了广泛的运用。
一、串口通信原理 串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到计算机端,而且也能实现计算机对单片机的控制。由于其所需电缆线少,接线简单,所以在较远距离传输中,得到了广泛的运用。
提示某个位置的xml文件有问题,到目录下一看:
C:\Documents and Settings\jackxiang\Application Data\Adobe\Dreamweaver CS4\zh_CN\Configuration\Workspace
重新命名:
Designer Compact.xml
新名字:
Designer Compact.xml.bak
然后,重新绿化了下,相当于把那个文件给重新生成了一次,再打开,O了!
C:\Documents and Settings\jackxiang\Application Data\Adobe\Dreamweaver CS4\zh_CN\Configuration\Workspace
重新命名:
Designer Compact.xml
新名字:
Designer Compact.xml.bak
然后,重新绿化了下,相当于把那个文件给重新生成了一次,再打开,O了!
#ZendStudio# 太重, #Editplus# 太丑, #Notepad++# 不支持sftp, #sublime# 没有PHP代码补全; #Textmate# 不能正常显示中文, #Espresso# 远程写文件错误没有反馈, #coda# 不能折叠代码.这个世界就不能有一个完美点的编辑器么 ..
语法:
const char *c_str();
c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同.
这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。
注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针
比如:最好不要这样:
char* c;
string s="1234";
c = s.c_str(); //c最后指向的内容是垃圾,因为s对象被析构,其内容被处理
应该这样用:
char c[20];
string s="1234";
strcpy(c,s.c_str());
这样才不会出错,c_str()返回的是一个临时指针,不能对其进行操作
再举个例子
c_str() 以 char* 形式传回 string 内含字符串
如果一个函数要求char*参数,可以使用c_str()方法:
string s = "Hello World!";
printf("%s", s.c_str()); //输出 "Hello World!"
const char *c_str();
c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同.
这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。
注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针
比如:最好不要这样:
char* c;
string s="1234";
c = s.c_str(); //c最后指向的内容是垃圾,因为s对象被析构,其内容被处理
应该这样用:
char c[20];
string s="1234";
strcpy(c,s.c_str());
这样才不会出错,c_str()返回的是一个临时指针,不能对其进行操作
再举个例子
c_str() 以 char* 形式传回 string 内含字符串
如果一个函数要求char*参数,可以使用c_str()方法:
string s = "Hello World!";
printf("%s", s.c_str()); //输出 "Hello World!"
linux 串口读取数据被截断,怎样一次全部接收?
阅读全文

原创 端口扫描程序实现原理 收藏
以前看过很多网络相关方面的程式源码, 但时间长了都忘了怎么实现的了, 因此,想将以后看过的源码实现方式记录下来, 以免下次再得找资源!
其实端口扫描程式的原理很简单, 利用socket连接指定IP的端口, 根据其返回值就可以得知目标机器是否开启了这个端口,
实现步骤如下:
1. 创建socket
c_socket = socket ( AF_INET, SOCK_STREAM, 0 );
if ( c_socket == SOCKET_ERROR )
{
printf (" create socket fault!\n ");
return -1;
}
2. 连接目示机器
struct sockaddr_in remoteaddr;
struct hostent* remotehost;
remoteaddr.sin_family = AF_INET;
remoteaddr.sin_addr.s_addr = inet_addr ( Address );
remoteaddr.sin_port = htons ( cPort );
//连接
if ( connect ( c_socket, (SOCKADDR*) &remoteaddr, sizeof ( struct sockaddr_in ) ) == SOCKET_ERROR )
{
printf ("< %3d > connect port %5d ...\n",ThreadID,cPort ) ;
closesocket( c_socket);
return -1;
}
closesocket( c_socket);
printf ("< %3d > connect port %5d succeed\n",ThreadID,cPort ) ;
也可以利用多线程技术实现, 只要给每个线程分配好指定的扫描端口段就可以了
来源:
http://blog.csdn.net/study_live/archive/2009/09/28/4604673.aspx
以前看过很多网络相关方面的程式源码, 但时间长了都忘了怎么实现的了, 因此,想将以后看过的源码实现方式记录下来, 以免下次再得找资源!
其实端口扫描程式的原理很简单, 利用socket连接指定IP的端口, 根据其返回值就可以得知目标机器是否开启了这个端口,
实现步骤如下:
1. 创建socket
c_socket = socket ( AF_INET, SOCK_STREAM, 0 );
if ( c_socket == SOCKET_ERROR )
{
printf (" create socket fault!\n ");
return -1;
}
2. 连接目示机器
struct sockaddr_in remoteaddr;
struct hostent* remotehost;
remoteaddr.sin_family = AF_INET;
remoteaddr.sin_addr.s_addr = inet_addr ( Address );
remoteaddr.sin_port = htons ( cPort );
//连接
if ( connect ( c_socket, (SOCKADDR*) &remoteaddr, sizeof ( struct sockaddr_in ) ) == SOCKET_ERROR )
{
printf ("< %3d > connect port %5d ...\n",ThreadID,cPort ) ;
closesocket( c_socket);
return -1;
}
closesocket( c_socket);
printf ("< %3d > connect port %5d succeed\n",ThreadID,cPort ) ;
也可以利用多线程技术实现, 只要给每个线程分配好指定的扫描端口段就可以了
来源:
http://blog.csdn.net/study_live/archive/2009/09/28/4604673.aspx
RSA算法是一种基于公钥和私钥的加密算法, 是由Ronald Rivest, Adi Shamir和Len Adleman三人在Diffie-Helman指数密钥交换算法的
基础上于1977年设计出来的,Rivest设计的加密系统利用了数学领域的一个事实,那就是虽然把两个大素数相乘生成一个合数是件很容易
的事, 但要把一个合数分解为两个素数却十分困难。
RSA的安全性依赖于大数分解,公钥和密钥都是两个大素数(大于100个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度
等同于分解两个大素数之积。
密钥对的产生,选对两个大素数p和q,计算
n=p*q
然后随机选择加密密钥e, 要求e和(p-1)*(q-1)互质,最后,利用Euclid算法计算解密密钥d,满足
(e*d) mod ((p-1)*(q-1))=1
其中n和d也要互质, 数e和n是公钥,d是私钥.现在两个素数p和q可以丢弃不再需要,不要让任何人知道.
加密信息m(二进制表示)时,首先把m分成等长数据块m1,m2....mi,块长s,其中2^s<=n, s尽可能地大.对应的密文是:
ci=mi^e (mod n) (a)
解密时作如下计算:
mi=ci^d (mod n) (b)
RSA可用于数字签名,方案是用(a)式签名,(b)式验证.具体操作时考虑到安全性和m信息量较大等因素,一般先作hash运算.
RSA算法示例:
(1) 选择两个素数:p=7, q=17
(2) 计算n=p*q=7*17=119
(3) 计算φ(n)=(p-1)*(q-1)=96
(4) 选择e,e为φ(n)=96的相对素数,要比φ(n)小,本例中e=5
(5) 决定d,使(d*e) mod 96=1,且d<96,正确值为d=77,因为77*5=385=4*96+1.
结果密钥为公钥KU={5, 119}和私钥KR={77, 119}
如输入明文M=19,使用以上密钥加密:
ci=M^e (mod n)
=19^5 mod 119
=2476099 mod 119
=66
解密由66^77 mod 119=19决定.
《黑客防线---口令破解与加密技术》笔记
来源:http://blog.csdn.net/study_live/archive/2009/12/19/5038828.aspx
i386,i586,i686几个概念之区分
这几个数据希望能结合rpm包名称考虑,不然会失去有些文字的表达意义。
i386—几乎所有的x86平台,不论是旧的pentium或者是新的pentium-iv与k7系统cpu,都可以正常工作,i指得是intel兼容的cpu,至于386就是cpu的等级。
i586—就是586等级的计算机,包括pentium第一代mmx cpu,amd的k5,k6系统cpu(socket7插脚)等cpu都是这个等级。
i686—pentium 2 以后的intel系统cpu及k7以后等级的cpu都属于这个686等级。
noarch—代表跟硬件体系结构无关。不管是 x86、powerpc,sparc 或者 alpha 系统。
本贴来自天极网群乐社区--http://q.yesky.com/group/review-17826846.html
这几个数据希望能结合rpm包名称考虑,不然会失去有些文字的表达意义。
i386—几乎所有的x86平台,不论是旧的pentium或者是新的pentium-iv与k7系统cpu,都可以正常工作,i指得是intel兼容的cpu,至于386就是cpu的等级。
i586—就是586等级的计算机,包括pentium第一代mmx cpu,amd的k5,k6系统cpu(socket7插脚)等cpu都是这个等级。
i686—pentium 2 以后的intel系统cpu及k7以后等级的cpu都属于这个686等级。
noarch—代表跟硬件体系结构无关。不管是 x86、powerpc,sparc 或者 alpha 系统。
本贴来自天极网群乐社区--http://q.yesky.com/group/review-17826846.html
/usr/ports/misc/cpuid下:
sudo make install clean
后,安装成功后,如何删除此软件呢?因为并没有看到温度。
cd /usr/ports/misc/cpuid
sudo make deinstall
安装Ports成功步骤:
portsnap fetch update. #https://blog.csdn.net/richardfjf/article/details/106961150
You must run 'portsnap extract' before running 'portsnap update'.
/usr/ports/x11/yeahconsole/
mkdir: /usr/ports/x11: No space left on device
tar: could not chdir to '/usr/ports/x11/yeahconsole/'
1、如何只抓取 tarball?
阅读全文
sudo make install clean
后,安装成功后,如何删除此软件呢?因为并没有看到温度。
cd /usr/ports/misc/cpuid
sudo make deinstall
安装Ports成功步骤:
portsnap fetch update. #https://blog.csdn.net/richardfjf/article/details/106961150
You must run 'portsnap extract' before running 'portsnap update'.
/usr/ports/x11/yeahconsole/
mkdir: /usr/ports/x11: No space left on device
tar: could not chdir to '/usr/ports/x11/yeahconsole/'
1、如何只抓取 tarball?

Google是与众不同的。它的独特不仅仅表现于革新的思维和充满创意的应用 (比如那个大堂里的地球模型),更在于其有别常规的IT策略……
加利福尼亚州山景城(Mountain View)Google公司(Google,下称Google)总部有一个43号大楼,该建筑的中央大屏幕上显示着一个与Google地球(Google Earth)相仿的世界地图,一个转动的地球上不停地闪动着五颜六色的光点,恍如罗马宫廷的千万烛灯,每一次闪动标志着地球的这个角落一名Google用户发起了一次新的搜索。
这同时意味着Google又一次满足了人们对未知信息的好奇与渴望。
阅读全文
加利福尼亚州山景城(Mountain View)Google公司(Google,下称Google)总部有一个43号大楼,该建筑的中央大屏幕上显示着一个与Google地球(Google Earth)相仿的世界地图,一个转动的地球上不停地闪动着五颜六色的光点,恍如罗马宫廷的千万烛灯,每一次闪动标志着地球的这个角落一名Google用户发起了一次新的搜索。
这同时意味着Google又一次满足了人们对未知信息的好奇与渴望。

这个框架看似有自己的独到的地方,譬如:Symfony的路由系统是比较不错的!
这个路由在对搜索引擎来说是有很多的好处,而结构和层次上要分明和清楚一些,我们完全可以借鉴它的精华
书籍:http://youa.baidu.com/item/a20ceb130b33b2eada61c10f
symfony
目录[隐藏]
概况
什么是框架(framework)?
什么是symfony?
symfony适合我吗?
阅读全文
这个路由在对搜索引擎来说是有很多的好处,而结构和层次上要分明和清楚一些,我们完全可以借鉴它的精华
书籍:http://youa.baidu.com/item/a20ceb130b33b2eada61c10f
symfony
目录[隐藏]
概况
什么是框架(framework)?
什么是symfony?
symfony适合我吗?

Linux 下串口终端,默认是字符界面minicom.这个软件优点是REHL自带,缺点也不少。一是在在LINUX桌面版下,对于嵌入式初学者,容易与字符终端搞混,。二是界面分隔不明显,如解释给开发板传送文件,不太容易看出是怎么进行。而在WINDOWS下,用超级终端就分隔的很明显,学生一操作就明白,三是与开发板有一些不太兼容,比如在某一个开发板上,发现光标经常丢失,这样造成使用上极为不方便,因此后我也就找到一款图形界面串口终端,gtkterm来代替minicom
gtkterm的使用说明
下载
http://www.jls-info.com/julien/linux/
最新版本是 http://www.jls-info.com/julien/linux/gtkterm-0.99.5.tar.gz
在RHEL5上它需要 libiconv库和libvte 0.10.以上库
这个是典型的configure & make & make install项目
1.安装libiconv
2.安装VTE,否则报相应的库找不到,RHEL自带光盘带了安装文件,但是默认开发库找不到。
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.10.4... yes
checking for TERMINAL_WIDGET... Package vte was not found in the pkg-config search path.
Perhaps you should add the directory containing `vte.pc'
to the PKG_CONFIG_PATH environment variable
No package 'vte' found
configure: error: Package requirements (vte >= 0.10.4) were not met.
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed sofchecking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.10.4... yes
checking for TERMINAL_WIDGET... Package vte was not found in the pkg-config search path.
Perhaps you should add the directory containing `vte.pc'
to the PKG_CONFIG_PATH environment variable
No package 'vte' found
configure: error: Package requirements (vte >= 0.10.4) were not met.
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively you may set the TERMINAL_WIDGET_CFLAGS and TERMINAL_WIDGET_LIBS environment variables
to avoid the need to call pkg-config. See the pkg-config man page for
more details.
tware in a non-standard prefix.
Alternatively you may set the TERMINAL_WIDGET_CFLAGS and TERMINAL_WIDGET_LIBS environment variables
to avoid the need to call pkg-config. See the pkg-config man page for
more details.
安装库文件,
[root@rhel5 Server]# rpm -ivh vte-0.14.0-2.el5.i386.rpm
warning: vte-0.14.0-2.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
package vte-0.14.0-2.el5 is already installed
[root@rhel5 Server]# rpm -ivh vte-devel-0.14.0-2.el5.i386.rpm
warning: vte-devel-0.14.0-2.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:vte-devel ########################################### [100%]
[root@rhel5 Server]#
3.生成make ,注意要把链接iconv库的语句加入,否则链接时找不到。
LDFLAGS=-liconv ./configure #生成Makefile,如果提示缺省的C找不到,可以先执行一次./configure后再执行上述语句
4.编译,安装 make & make install
安装后执行 gtkterm. 进行图形界面配置即可
来源:http://blog.chinaunix.net/u3/105675/showart_2108697.html
gtkterm的使用说明
下载
http://www.jls-info.com/julien/linux/
最新版本是 http://www.jls-info.com/julien/linux/gtkterm-0.99.5.tar.gz
在RHEL5上它需要 libiconv库和libvte 0.10.以上库
这个是典型的configure & make & make install项目
1.安装libiconv
2.安装VTE,否则报相应的库找不到,RHEL自带光盘带了安装文件,但是默认开发库找不到。
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.10.4... yes
checking for TERMINAL_WIDGET... Package vte was not found in the pkg-config search path.
Perhaps you should add the directory containing `vte.pc'
to the PKG_CONFIG_PATH environment variable
No package 'vte' found
configure: error: Package requirements (vte >= 0.10.4) were not met.
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed sofchecking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.10.4... yes
checking for TERMINAL_WIDGET... Package vte was not found in the pkg-config search path.
Perhaps you should add the directory containing `vte.pc'
to the PKG_CONFIG_PATH environment variable
No package 'vte' found
configure: error: Package requirements (vte >= 0.10.4) were not met.
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively you may set the TERMINAL_WIDGET_CFLAGS and TERMINAL_WIDGET_LIBS environment variables
to avoid the need to call pkg-config. See the pkg-config man page for
more details.
tware in a non-standard prefix.
Alternatively you may set the TERMINAL_WIDGET_CFLAGS and TERMINAL_WIDGET_LIBS environment variables
to avoid the need to call pkg-config. See the pkg-config man page for
more details.
安装库文件,
[root@rhel5 Server]# rpm -ivh vte-0.14.0-2.el5.i386.rpm
warning: vte-0.14.0-2.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
package vte-0.14.0-2.el5 is already installed
[root@rhel5 Server]# rpm -ivh vte-devel-0.14.0-2.el5.i386.rpm
warning: vte-devel-0.14.0-2.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:vte-devel ########################################### [100%]
[root@rhel5 Server]#
3.生成make ,注意要把链接iconv库的语句加入,否则链接时找不到。
LDFLAGS=-liconv ./configure #生成Makefile,如果提示缺省的C找不到,可以先执行一次./configure后再执行上述语句
4.编译,安装 make & make install
安装后执行 gtkterm. 进行图形界面配置即可
来源:http://blog.chinaunix.net/u3/105675/showart_2108697.html