移码(又叫增码)是符号位取反的补码,一般用做浮点数的阶码,引入的目的是为了保证浮点数的机器零为全0。
①移码的定义:设由1位符号位和n位数值位组成的阶码,则 [X]移=2En + X -2n≤X ≤ 2n
例如: X=+1011 [X]移=11011 符号位“1”表示正号
X=-1011 [X]移=00101 符号位“0”表示负号
②移码与补码的关系: [X]移与[X]补的关系是符号位互为相反数(仅符号位不同),
例如: X=+1011 [X]移=11011 [X]补=01011
X=-1011 [X]移=00101 [X]补=10101
③移码运算应注意的问题:
◎对移码运算的结果需要加以修正,修正量为2En ,即对结果的符号位取反后才是移码形式的正确结果。
◎移码表示中,0有唯一的编码——1000…00,当出现000…00时(表示-2En),属于浮点数下溢。
浮点数的运算规则
1、浮点加减法的运算步骤
设两个浮点数 X=Mx※2Ex Y=My※2Ey
实现X±Y要用如下5步完成:
①对阶操作:小阶向大阶看齐
②进行尾数加减运算
③规格化处理:尾数进行运算的结果必须变成规格化的浮点数,对于双符号位的补码尾数来说,就必须是
001×××…×× 或110×××…××的形式
若不符合上述形式要进行左规或右规处理。
④舍入操作:在执行对阶或右规操作时常用“0”舍“1”入法将右移出去的尾数数值进行舍入,以确保精度。
⑤判结果的正确性:即检查阶码是否溢出
若阶码下溢(移码表示是00…0),要置结果为机器0;
若阶码上溢(超过了阶码表示的最大值)置溢出标志。
例题:假定X=0 .0110011*211,Y=0.1101101*2-10(此处的数均为二进制) ?? 计算X+Y;
解:[X]浮: 0 1 010 1100110
[Y]浮: 0 0 110 1101101
符号位 阶码 尾数
第一步:求阶差: │ΔE│=|1010-0110|=0100
第二步:对阶:Y的阶码小, Y的尾数右移4位
[Y]浮变为 0 1 010 0000110 1101暂时保存
第三步:尾数相加,采用双符号位的补码运算
00 1100110
+00 0000110
00 1101100
第四步规格化:满足规格化要求
第五步:舍入处理,采用0舍1入法处理
故最终运算结果的浮点数格式为: 0 1 010 1101101,
即X+Y=+0. 1101101*210
2、浮点乘除法的运算步骤
①阶码运算:阶码求和(乘法)或阶码求差(除法)
即 [Ex+Ey]移= [Ex]移+ [Ey]补
[Ex-Ey]移= [Ex]移+ [-Ey]补
②浮点数的尾数处理:浮点数中尾数乘除法运算结果要进行舍入处理
例题:X=0 .0110011*2E11,Y=0.1101101*2E-10
求X※Y
解:[X]浮: 0 1 010 1100110
[Y]浮: 0 0 110 1101101
第一步:阶码相加
[Ex+Ey]移=[Ex]移+[Ey]补=1 010+1 110=1 000
1 000为移码表示的0
第二步:原码尾数相乘的结果为:
0 10101101101110
第三步:规格化处理:已满足规格化要求,不需左规,尾数不变,阶码不变。
第四步:舍入处理:按舍入规则,加1进行修正
所以 X※Y= 0.1010111※2E+000
正确设置WordPress的目录/文件权限
Filed Under (Linux&Unix, 技术心得, 网管员之路) by 有为 on 24-06-2009
在各式各样的网络攻击手段层出不穷的今天,如何将恶意攻击者拒之门外,保证Web服务器的安全便成了网站能够稳定地提供服务的最基本保障。当然,网络与服务器安全是一个很大的话题,相对而言,一般性的博客网站也很难成为网络攻击者的目标,但若由此便掉以轻心则显然是不智的,毕竟,如今网络攻击的门槛越来越低,即使一个懵懵懂懂的小P孩使用随处可以找到的攻击工具也可能对我们的网站带来事实上的伤害。
那么,应如何保证我们基于WordPress博客的安全呢?
这一方面要求我们在为博客选择虚拟主机时考虑主机商的硬件设备与技术能力,确定其是否能够稳定地抵御绝大多数的网络攻击,另一方面,也需要我们正确地设置Web服务器中的目录/文件权限,不给恶意攻击者可乘之机。
从理论上来说,要保证Web服务器的安全,最简单的办法便是赋予文件最低的操作权限,比如说所有文件均为只读,而不可写不可执行,这样,攻击者便会无从下手。但在实际应用中,情况并非这么简单,以使用 WordPress搭建的博客网站来说,必须赋予某些文件的可写、可执行权限,因为WordPress自身在运行过程中需要存取、修改某些文件才能实现网站的服务功能。
对Wordpress目录/文件权限的设置,实际上就是在网站的可用性、易用性与安全性之间寻得一个恰当的平衡。下面我们具体来讨论一下(以Linux/Apache平台、WordPress位于网站根目录为例):
“/wp-admin/”: WordPress管理目录,其中的所有文件应该只赋予所有者可写权限;
“/wp-includes/”:WordPress 支持库目录,其中的所有文件应该只赋予所有者可写权限;
“/wp-content/”:这个目录下的文件权限设置相对复杂了些,让我们分别来看;
“/wp- content/themes/”:对于WordPress主题目录下的文件,如果您从不使用WordPress内置的主题编辑器,那么可以简单地设置其仅允许所有者可写;当然,对大部分朋友来说,可能常常需要修改主题如css、模板文件等,这就应赋予这些文件Apache运行用户(一般为nobody)所在组的可写权限。
而“/wp-content/plugins/”目录下存放的插件文件,同样也需视情况而定,一般而言,大部分插件可以只赋予所有者可写权限,但同样也存在部分插件需赋予Apache运行用户(一般为nobody)所在组的可写权限。
而如果要使用WordPress内置的Database Backup插件,则需要将整个“/wp-content/”目录赋予可写的权限,一般为755,在某些主机设置中甚至可能需要更高的777。
“/”:WordPress 根目录,应该只赋予所有者可写权限;不过,如果您的博客使用Permalinks,需要WordPress来自动生成、应用rewrite规则,则必须赋予Apache 对“.htaccess”的操作权限。此外,如其中内含连接wordpress 数据库的用户名与密码的“wp-config.php”,则应赋予更严格的操作控制,禁止遍历,极端情况下可直接将其设为600。
请您祝贺,我报考的网络工程师成绩下来了!!
Filed Under (我的荣誉) by 有为 on 23-06-2009
我的网络工程师成绩:
上午:54(满分75分,45分及格)
下午:58(满分75分,45分及格)
我的作品之–沈阳体育学院场馆服务中心网站
Filed Under (网站创意) by 有为 on 22-06-2009

沈阳体育学院场馆服务中心网站效果图
网址:http://cg.syty.edu.cn
windows下解决Tomcat自动启动时的延时启动问题
Filed Under (网管员之路) by 有为 on 26-05-2009
1.首先将shutdown.bat中的内容拷贝到start-tomcat.bat中。
2.拷贝choice /t 90 /d y /n >nul内容到start-tomcat.bat中。
3.加入startup.bat批处理命令。
例如:
@echo off
if “%OS%” == “Windows_NT” setlocal
rem —————————————————————————
rem Stop script for the CATALINA Server
rem
rem $Id: shutdown.bat 302913 2004-05-27 15:05:01Z yoavs $
rem —————————————————————————
rem Guess CATALINA_HOME if not defined
set CURRENT_DIR=%cd%
if not “%CATALINA_HOME%” == “” goto gotHome
set CATALINA_HOME=%CURRENT_DIR%
if exist “%CATALINA_HOME%\bin\catalina.bat” goto okHome
cd ..
set CATALINA_HOME=%cd%
cd %CURRENT_DIR%
:gotHome
if exist “%CATALINA_HOME%\bin\catalina.bat” goto okHome
echo The CATALINA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto end
kHome
set EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat
rem Check that target executable exists
if exist “%EXECUTABLE%” goto okExec
echo Cannot find %EXECUTABLE%
echo This file is needed to run this program
goto end
kExec
rem Get remaining unshifted command line arguments and save them in the
set CMD_LINE_ARGS=
:setArgs
if “”%1″”==”"”" goto doneSetArgs
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
shift
goto setArgs
:doneSetArgs
call “%EXECUTABLE%” stop %CMD_LINE_ARGS%
:end
choice /t 90 /d y /n >nul
startup.bat
