当前位置:首页 » 操作系统 » T30源码

T30源码

发布时间: 2022-05-07 08:45:08

‘壹’ T30计划到底是小码哥教育的还是源码时代的

T30计划是他们共同制定的,结合源码时代的优势与小码哥的优势,同心协力、通力合作,强强联手, 精心锻造“T30”时效培训计划,,实现“双码合璧”,充分发挥双方的整体战斗力。

‘贰’ 点在图片上 显示日历框 可以选择日历上的日期 来查询对应时间数据库的信息 这个JSP代码怎么写

<%@ page contentType="text/html; charset=gb2312" %>
<%@ page language="java" import="java.util.*" %>

<%
response.setHeader("Cache-Control", "no-store");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
%>

<html>

<head>
<title>选择日期</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<META name="GENERATOR" content="IBM WebSphere Studio">
<style>
SELECT {FONT-SIZE: 9pt; LINE-HEIGHT: 11pt}
TEXTAREA {FONT-SIZE: 9pt; LINE-HEIGHT: 11pt}
INPUT {FONT-SIZE: 9pt; LINE-HEIGHT: 11pt}
TD {FONT-SIZE: 9pt; LINE-HEIGHT: 11pt}
.p { font-size: 12px; line-height: 18px}
.pp { font-size: 14px; line-height: 18px}
.cals{font-family: "Arial"color:#000000; font-size:10pt}
</style>
<%@page import = "java.util.StringTokenizer"%>
<%
String type = request.getParameter("type");
if (type==null) type="1";

Calendar cal = Calendar.getInstance();
String cur_date = cal.get(Calendar.YEAR) + "年" + (cal.get(Calendar.MONTH)+1)
+ "月" + cal.get(Calendar.DAY_OF_MONTH)+"日";

int cur_year = cal.get(Calendar.YEAR);
int cur_month = (cal.get(Calendar.MONTH)+1);
int cur_day = cal.get(Calendar.DAY_OF_MONTH);
String cur_date_string = String.valueOf(cur_year) + "-"
+ (cur_month<10?("0"+String.valueOf(cur_month)):String.valueOf(cur_month)) + "-"
+ (cur_day<10?("0"+String.valueOf(cur_day)):String.valueOf(cur_day));

String parmInitDate = request.getParameter("initdate");
int parm_year=0;
int parm_month=0;
int parm_day=0;

if(parmInitDate!=null){
StringTokenizer mytoken = null;
try{
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd");
java.util.Date date = null;
date = formatter.parse(parmInitDate);
//java.util.Calendar cal = new java.util.Calendar()
cal.setTime(date);
parm_year = cal.get(Calendar.YEAR);
parm_month = cal.get(Calendar.MONTH) + 1;
parm_day = cal.get(Calendar.DAY_OF_MONTH );
}catch(Exception e){
//out.print(e);
}
}
parm_year= parm_year==0?cur_year:parm_year;
parm_month= parm_month==0?cur_month:parm_month;
parm_day= parm_day==0?cur_day:parm_day;
%>

<script LANGUAGE="vbscript">
<!--
dim cal(6,7)
dim sToday
dim sCurDate
dim sSeldate
dim selx,sely

sCurdate="<%=cur_date_string%>"
sSeldate="<%=parm_year+"-"+parm_month+"-"+parm_day%>"
sub getDate()
if window.event.srcElement.innerText = "" or window.event.srcElement.innerText = " " then exit sub

for i = 1 to 6
for j = 1 to 7
if cal(i,j).bgcolor="#0000ff" then
cal(i,j).bgcolor=""
cal(i,j).style.color="black"
end if
next
next
if window.event.srcElement.bgcolor<>"#ffff00" then
window.event.srcElement.bgcolor="blue"
window.event.srcElement.style.color="white"
end if

aa = window.year.value & "-" & right(window.month.value+100,2) & "-" & right(window.event.srcelement.innertext+100,2)

window.sel_date.innerText=aa
end sub

sub getTime()
aa=""
if window.hour.value<>"00" or window.minute.value<>"00" or window.second.value<>"00" then
aa=window.hour.value & ":" & window.minute.value & ":" & window.second.value
end if
if window.sel_date.innerText = "" then
window.sel_date.innerText = sCurDate
end if
window.sel_time.innerText=aa
end sub

sub ret ()
if window.sel_date.innerText <> "" then
window.returnValue = window.sel_date.innerText
if window.sel_time.innerText="" then
window.sel_time.innerText=window.hour.value & ":" & window.minute.value & ":" & window.second.value
end if
if window.sel_time.innerText <>"" then
window.returnValue = window.sel_date.innerText & " " & window.sel_time.innerText
end if
end if

window.event.returnValue = false
set cal(6,7) = nothing
window.close()
end sub

sub cancel ()
window.returnValue = ""
window.event.returnValue = false
set cal(6,7) = nothing
window.close()
end sub

sub draw
dim yy,mm,dd,thisday,lastmm,maxday
dim nextmm

yy = window.year.value
mm = window.month.value
dd = datepart("d",sSeldate)
thisday = dateserial (yy,mm,1)
set cal(1,1) = t10:set cal(1,2) = t11:set cal(1,3) = t12:set cal(1,4) = t13:set cal(1,5) = t14:set cal(1,6) = t15:set cal(1,7) = t16
set cal(2,1) = t20:set cal(2,2) = t21:set cal(2,3) = t22:set cal(2,4) = t23:set cal(2,5) = t24:set cal(2,6) = t25:set cal(2,7) = t26
set cal(3,1) = t30:set cal(3,2) = t31:set cal(3,3) = t32:set cal(3,4) = t33:set cal(3,5) = t34:set cal(3,6) = t35:set cal(3,7) = t36
set cal(4,1) = t40:set cal(4,2) = t41:set cal(4,3) = t42:set cal(4,4) = t43:set cal(4,5) = t44:set cal(4,6) = t45:set cal(4,7) = t46
set cal(5,1) = t50:set cal(5,2) = t51:set cal(5,3) = t52:set cal(5,4) = t53:set cal(5,5) = t54:set cal(5,6) = t55:set cal(5,7) = t56
set cal(6,1) = t60:set cal(6,2) = t61:set cal(6,3) = t62:set cal(6,4) = t63:set cal(6,5) = t64:set cal(6,6) = t65:set cal(6,7) = t66

for i = 1 to 6
for j = 1 to 7
cal(i,j).innertext = " "
cal(i,j).style.cursor = ""
cal(i,j).bgcolor=""
next
next
// cal(1,cint(datepart("w",thisday))).innertext = 1
// cal(1,cint(datepart("w",thisday))).style.cursor="hand"
//计算选择缺省日期
lastmm = datepart("m",thisday)
nextmm = lastmm + 1
if nextmm= 13 then nextmm = 1
maxday = datepart("d",dateadd("d",-1,dateserial (yy,nextmm,"1") ) )
if dd>maxday then dd = maxday

//缺省
i = 1 'the line
do until (datepart("m",thisday) - lastmm <>0)
if datepart ("w",thisday) = 1 then i = i + 1
cal(i,cint(datepart("w",thisday))).innertext = datepart("d",thisday)
if thisday=date then
cal(i,cint(datepart("w",thisday))).bgcolor="#A7A4D9" 'tt1
cal(i,cint(datepart("w",thisday))).style.color="red"
else
cal(i,cint(datepart("w",thisday))).style.color="black"
end if
if(datepart("d",thisday)=dd) then
if thisday<>date then
cal(i,cint(datepart("w",thisday))).bgcolor="blue"
cal(i,cint(datepart("w",thisday))).style.color="white"
end if
dim showday
showday = datepart("yyyy",thisday)& "-"
if(datepart("m",thisday)<10) then
showday = showday & "0"
end if
showday = showday & datepart("m",thisday)& "-"
if(datepart("d",thisday)<10) then
showday = showday & "0"
end if
showday = showday & datepart("d",thisday)
window.sel_date.innerText= showday
end if

cal(i,cint(datepart("w",thisday))).style.cursor="hand"
thisday = thisday + 1
loop

for i = 1 to 6
for j = 1 to 7
cal(i,j).style.fontsize = "9pt" '" normal small-caps 8pt serif"
next
next
end sub

sub up()
for i = 1 to 6
for j = 1 to 7
if cal(i,j).bgcolor="#0000ff" then
cal(i,j).bgcolor=""
cal(i,j).style.color="black"
end if
next
next
if window.month.value = 12 then
if window.year.value < 2100 then window.year.value = window.year.value + 1
window.month.value = 1
else
window.month.value = window.month.value + 1
end if
draw()
end sub

sub down ()
for i = 1 to 6
for j = 1 to 7
if cal(i,j).bgcolor="#0000ff" then
cal(i,j).bgcolor=""
cal(i,j).style.color="black"
end if
next
next
if window.month.value = 1 then
if window.year.value > 1996 then window.year.value = window.year.value - 1
window.month.value = 12
else
window.month.value = window.month.value - 1
end if
draw()

end sub
-->
</script>

<script ID="clientEventHandlersVBS" LANGUAGE="vbscript">
<!--

Sub year_onchange
draw()
End Sub

Sub month_onchange
draw()
End Sub

sub init ()
aa = date()
bb = <%=parm_year%>
if bb >= 1950 and bb <= 2100 then window.year.value = bb
bb = <%=parm_month%>
window.month.value = bb
sToday=<%=parm_day%>
draw ()
end sub
-->
</script>
<script language="javascript" for="t1" event="onkeydown">
//Esc退出
var keyDown = event.keyCode
if(keyDown==27){
window.close()
}
</script>

</head>
<body onload="init" leftmargin="12" topmargin="7" >
<center>
<!--<font class='pp'>今天是<%=cur_date%></font><br> -->
<table border="0" width="200" cellspacing="0" cellpadding="1" bgcolor="snow" id="t1" align="center">
<tr>
<td colspan='7' nowrap >
<select id="year" name="year">
<%for (int i=2000; i<=2020; i++) {%>
<option value=<%=i%>><%=i%></option>
<%}%>
</select>
<select id="month" name="month">
<%for (int i=1; i<=12; i++) {%>
<option value=<%=i%>><%=i%>月</option>
<%}%>
</select>
<img src="../images/arr04.gif" id="up" language="vbscript" style='cursor:hand' onclick="down()" accesskey=1 align="absmiddle">
<img src="../images/arr05.gif" id="down" language="vbscript" style='cursor:hand' onclick="up()" accesskey=2 align="absmiddle">
</td>
</tr>
<tr>
<td colspan='7' height="5" > </td>
</tr>
<tr bgcolor="#7975C6">
<td align='center' class="cals" height="23" align="absmiddle">日</td>
<td align='center' class="cals" align="absmiddle">一</td>
<td align='center' class="cals" align="absmiddle">二</td>
<td align='center' class="cals" align="absmiddle">三</td>
<td align='center' class="cals" align="absmiddle">四</td>
<td align='center' class="cals" align="absmiddle">五</td>
<td align='center' class="cals" align="absmiddle">六</td>
</tr>
<%for (int i=1; i<=6; i++) {%>
<tr bgcolor="#e6e6fa">
<%for (int j=0; j<=6; j++) {%>
<td align='center' id=t<%=i%><%=j%> onclick="getDate()" ondblclick="ret()" class="cals"></td>
<%}%>
</tr>
<%}%>
<%String disp=null;%>
<%if (type.compareTo("2")==0) {%>
<tr>
<td colspan='7' nowrap height="28" align="center" valign="bottom" >
<select id="hour" name="hour" onchange='getTime()'>
<%
for (int i=0; i<=23; i++) {
disp=String.valueOf(i);
if (disp.length()==1) disp = "0"+disp;
%>
<option value=<%=disp%><%if (i==0) out.print(" selected");%>><%=disp%></option>
<%}%>
</select><font class='p'>时</font>
<select id="minute" name="minute" onchange='getTime()'>
<%
for (int i=0; i<=59; i++) {
disp=String.valueOf(i);
if (disp.length()==1) disp = "0"+disp;
%>
<option value=<%=disp%><%if (i==0) out.print(" selected");%>><%=disp%></option>
<%}%>
</select><font class='p'>分</font>
<select id="second" name="second" onchange='getTime()'>
<%
for (int i=0; i<=59; i++) {
disp=String.valueOf(i);
if (disp.length()==1) disp = "0"+disp;
%>
<option value=<%=disp%><%if (i==0) out.print(" selected");%>><%=disp%></option>
<%}%>
</select><font class='p'>秒</font>
</td></tr>
<%}%>
</table>
<table border='0' width='180' style="display:none">
<tr>
<td nowrap>
时间:
<font color='red'>
<span id='sel_date' name='sel_date'></span>
<span id='sel_time' name='sel_time'></span>
</font>
</td>
</tr>
</table>
<table border='0' cellspacing="0" cellpadding="0" >
<tr><td height="4"></td></tr>
<tr><td align="absmiddle"><img src="../images/bt_sure.gif" onclick='ret()'></td></tr>
</table>
</center>
<%
String initH="00";
String initM="00";
String initS="00";
if(type.equals("2")){
if(parmInitDate==null) parmInitDate="";
parmInitDate=parmInitDate.trim();
if(parmInitDate.length()>10){
initH=parmInitDate.substring(11,13);
initM=parmInitDate.substring(14,16);
initS=parmInitDate.substring(17,19);
}else{
//初始化为当前时间
java.text.SimpleDateFormat sdf=null;
String curTime="";
try{
sdf=new java.text.SimpleDateFormat("HH:mm:ss");
curTime=sdf.format(new java.util.Date());
}catch(Exception e){
curTime="00:00:00";
System.out.println("格式为日期出错");
}
initH=curTime.substring(0,2);
initM=curTime.substring(3,5);
initS=curTime.substring(6,8);
}
}

%>
<script language="javascript">

var itype='<%=type %>';
var hh='<%=initH %>';
var mm='<%=initM %>';
var ss='<%=initS %>';
if(itype=='2'){
//初始化数据
var objh=document.getElementById('hour');
var objm=document.getElementById('minute');
var objs=document.getElementById('second');
objh.value=hh;
objm.value=mm;
objs.value=ss;
}

</script>
</body>
</html>

‘叁’ asp中怎样实现隔5分钟后才能再次登陆

下面是我的思路:
用户登录时检测用户是否在线,
如果在线
-说明用户登录前曾非正常退出,
-在再次登录用户记录中加入该用户及登录的时间,
-将用户从在线用户中删除
否则
-检测该用户是否在再次登录用户记录中
-如果是
--此次登录时间与上次是否超过5分钟
--如果是
---在再次登录用户记录中加入该用户
---登录
--否则
---提示必须超过5分钟才能再次登录
-否则
--登录

‘肆’ linux是哪个国家开发的操作系统。

芬兰赫尔辛基人

类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年第一次释出,它主要受到Minix和Unix思想的启发,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。

它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、oracle linux等。

(4)T30源码扩展阅读

林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds,1969年12月28日- ),芬兰赫尔辛基人,着名的电脑程序员,Linux内核的发明人及该计划的合作者,毕业于赫尔辛基大学计算机系,1997年至2003年在美国加州硅谷任职于全美达公司;

现受聘于开放源代码开发实验室(OSDL:Open Source Development Labs, Inc),全力开发Linux内核。与妻子托芙(Tove,芬兰前女子空手道冠军)育有三个女孩。着有自传《乐者为王》。

‘伍’ 您好,实是我想要个聚宝盆与神枪手公式,求解

楼主要的可是下面这两个公式?两个都是通达信使用(我也是到网上搜的)

1 通达信聚宝盆选股指标公式源码如下:

V2G:=(((CLOSE - REF(CLOSE,1)) / REF(CLOSE,1)) * 100);
V3G:=(MA(VOL,2) / MA(VOL,10));
V4G:=(VOL / CAPITAL);
A1G:=((((0.0068 * V2G) - (0.0072 * V3G)) - (0.5676 * V4G)) - 0.0105);
A2G:=((((0.0015 * V2G) - (0.0124 * V3G)) + (1.7461 * V4G)) - 0.0074);
{A3G:=((((0 - (0.0003 * V2G)) + (0.047 * V3G)) - (0.5734 * V4G)) - 0.0549);}
聚宝盆C:((((0 - (12.2401 * A1G)) - (1 * A2G)) + 0.321) < 0)*110,COLORRED,LINETHICK3;

2 神枪手

CSS:=((CLOSE-LLV(LOW,8))/(HHV(HIGH,8)-LLV(LOW,8))*100);
YJDD:=(EMA(CSS,3)-50)*2;
强弱:(YJDD+100)/2,COLORBLUE;
80,COLORRED,POINTDOT,LINETHICK3;
20,COLORRED,POINTDOT,LINETHICK3;
100,COLORBLUE;
T1:=(INDEXC-MA(INDEXC,58))/MA(INDEXC,58)<-0.152;
T2:=(C-EMA(C,58))/EMA(C,58)<-0.19;
买1:=T2 AND T1;T3:=IF(DATE<=1090831,1,0);
T4:=(C-MA(C,2))/MA(C,2)*100*T3;
T5:=INDEXC*T3;
T6:=MA(T5,13)*T3;
T7:=T6>1.050*T5*T3;
T8:=(C-REF(C,26))/REF(C,26)*10*T3;
T9:=T7*T3;
T10:=T8<-2.30 AND T3;
T11:=T4<-2.7 AND T3;
T12:=T9 AND T10 AND T11 AND T3;
T13:=CROSS(0.5,T12)*T3;
T14:=CROSS(T13,0.5)*T3;
T15:=BARSLAST(T14=1)*T3;
T16:=T15<=5 AND C<REF(C,T15) AND T3;
买2:=T13 OR T16;
T17:= (C-MA(C,2))/MA(C,2)*100;
T18:=INDEXC;
T19:=MA(T18,56);
T20:=T18/T19<0.94;
T21:=(C-REF(C,26))/REF(C,26)*10;
T22:=T20;
T23:=T21<-2.55;
T24:=T17<-2.7;
T25:=T22 AND T23 AND T24;
T26:=CROSS(0.5,T25);
T27:=CROSS(T26,0.5);
T28:=BARSLAST(T27=1);
T29:=T28<=5 AND C<1.02*REF(C,T28);
底4:=T26 OR T29;
T30:= (C-MA(C,2))/MA(C,2)*100;
T31:=INDEXC;
T32:=MA(T31,13);
T33:=T32>1.050*T31;
T34:=(C-REF(C,26))/REF(C,26)*10;
T35:=T33;
T36:=T34<-2.69;
T37:=T30<-3.09;
T38:=T35 AND T36 AND T37;
T39:=CROSS(0.5,T38);
T40:=CROSS(T39,0.5);
T41:=BARSLAST(T40=1);
T42:=T41<=5 AND C<REF(C,T41);
买3:=COUNT(T39 OR T42,4)=4;
T43:=EMA(((C*1.1-LLV(LOW,630))/(HHV(HIGH,630)-LLV(LOW,630))-(C*0.9-LLV(LOW,630))/(HHV(HIGH,630)-LLV(LOW,630)))*80,5);
T44:=INDEXC;
T45:=MA(T44,5);
T46:=MA(T44,20);
T47:=MA(T44,30);
T48:=T45>T44*1.03 AND T46>T44*1.13;
T49:=T48;
目标:=COUNT(T43<6 AND T49,3)>=3;
新目标:=买3 OR 目标;
神枪手:IF(((COUNT(买1 AND 底4,6)=6 OR COUNT(买1 AND 买2,4)=4 OR COUNT(买2 AND 底4,5)=5) OR 新目标),90,0),COLORRED,LINETHICK3;
DRAWTEXT(FILTER(神枪手,5),90,'买入区'),COLORRED;

希望能帮到你!

‘陆’ 想要详细了解Thinkpad笔记本电脑

ThinkPad 在2005年以前是IBMPC事业部旗下的便携式计算机品牌,凭借坚固和可靠的特性在业界享有很高声誉。在Lenovo收购IBMPC事业部之后,ThinkPad商标为Lenovo所有。ThinkPad自问世以来一直保持着黑色的经典外观并对技术有着自己独到的见解,如:TrackPoint(指点杆,俗称小红点)、ThinkLight键盘灯、全尺寸键盘和APS(Active Protection System,主动保护系统)。
“ThinkPad”这个名称的灵感来自IBM的便笺簿。每一位IBM的雇员或到IBM训练中心受训的人,都会拿到一本便笺簿(“便笺簿”英文为“pad”),上面印着企业的座右铭“THINK”。在一次讨论便携式电脑产产品名称的会议上,一名与会者随手将一本这样的便笺簿甩到半空然后落在了会议桌上,另一名与会者受此启发提出可以用“ThinkPad”这个名称。起初IBM高层一度反对使用这个名称,因为以前IBM一直使用数字为标识产品型号。但是“ThinkPad”这个名称受到广大雇员和客户的极大欢迎和喜爱,最终IBM高层妥协同意使用“ThinkPad”作为产品名称。
ThinkPad的设计灵感来自传统的日本饭盒
ThinkPad最初的设计工作是由IBM位于日本的大和设计中心承担的。ThinkPad纯黑色外观的灵感来自日本传统的一种漆器饭盒:松花堂便当,它通体黑色且常用来装午饭。
IBM在1992年开始发布ThinkPad产品,其中就包括ThinkPad 700。最初的ThinkPad并没有键盘,理应属于平板电脑(tablet computer)的范畴。它装配有黑白液晶显示屏(LCD)、替代硬盘驱动器的40 MB闪存(Flash Memory)、基于Go的PenPoint OS操作系统和IBM研发的笔迹识别系统。IBM随后又发布了预装Microsoft Windows 3.1且带有键盘的ThinkPad,售价US,350,重3 千克 (6.5 l磅),尺寸是 2.2 × 11.7 × 8.3 英寸 (56 × 297 × 210 mm)。它还装配了当时最大的10.4英寸(264毫米)液晶显示屏,25 MHz 386SX中央处理器,120 MB硬盘驱动器还有一个手感良好的带有TrackPoint指点杆的键盘。明亮的红色TrackPoint被安装在键盘上,没有了鼠标的累赘人们能够在飞机客舱托架上使用方便地便携式电脑。
尽管采用平版电脑设计的ThinkPad在商业上并不成功,但是它和Apple Newton共同开创了人类使用PDA(Personal Digital Assistant,个人数字助理)和移动计算的时代。
ThinkPad品牌即源于“思考”。 ThinkPad之父内藤先生说过:“如果人们能够赋予一种产品以思考的力量,那么它必定拥有超越于技术之上的价值。”
在过去的16年里, ThinkPad缔造了许多辉煌,也缔造了许多个业界第一。截至2008年年底,ThinkPad 在全球所获各种业内大奖已超过了3500项,这几乎是其他品牌所无法逾越的巅峰;而ThinkPad创造的无数经典力作也在移动发展史上构筑了一道道“里程碑”。
[编辑本段]ThinkPad 型号详细信息
ThinkPad2352607型,即仅供日本的ThinkPad235型是一件很有意思的产品,它是IBM/RicohRIOS的后续产品。它也被广泛的叫做Clavius或者Chandra2,这款机器包括许多不平常的功能,例如包括3个PCMCIA插槽和同时支持两个摄像机电池作为电源。这款机器采用一颗英特尔奔腾MMX233MHz中央处理器,并且支持最多160MB的内存,并且包括了一块支持UDMA功能的笔记本2.5英寸硬盘。
日立在销售Chandra2时用的名字叫做PriusNote210.ThinkPad300系列thinkPad300系列(300,310,350,360,365,380,385,390(及所有的子系列))有着很长的产品线,从486SX-25直到PentiumIII450。尽管其较新型号的机器大而且稍微慢一些,但它的确是一款便宜的ThinkPad。ThinkPad500系列500系(500,510,560(E,X,Z),570(E))是当年的重点轻薄型ThinkPad.从开始时使用486SX2-50Bluelightening处理器发展至使用PentiumIII500Mhz处理器。
这系列机器只有一内置硬盘,所有其他驱动器都是外置的。(或像570般装在Ultrabase中)。ThinkPad600系列600系列(600,600E和600X)是后来着名的T系列的直系祖先,它以传奇般的移动性和坚固性而闻名。600系列包括一个12.1"SVGA或者13.3"XGATFTLCD显示器,奔腾MMX,奔腾2或者奔腾3中央处理器,全尺寸键盘,和一个光驱槽,全部重量大约2.3公斤。IBM用了一种轻重量但是高强度的碳纤维塑料实现了如此轻巧的笔记本电脑ThinkPad700系列700系列(700,701,730(手写型),750,755,760,765,770)(许多都有子型号)是当年使用英特尔处理器的ThinkPadl中最尖端的。
它们都拥有当时最好的显示屏,最大容量的硬盘,和最高速的处理器。701外号“Butterfly”(蝴蝶),因为它的键盘为了能够塞进较细小的空间而分成两部份。当它收藏时,会上、下移开塞进计算机内,到打开时又会左、右展开,就像蝴蝶展翅一样。ThinkPad800系列800系列(800/820/821/822/823/850/851/860)是一种非常罕见的基于PowerPC架构而非x86的笔记本电脑。它采用PowerPC603e中央处理器,在860信号中,这颗中央处理器的速度达到100MHz或者166MHz。800型可能采用了一颗603处理器,但是不确信这是否只是实验目的。800系列采用SCSI2接口而不是IDE接口。800系列价格非常昂贵,其中850型号可能价值12,000美元。800系列运行在WindowsNT3.5或者4.0,OS/2,AIX4.14,SolarisDesktop2.5.1PowerPC版或者Linux.ThinkPadTransnoteIBMTransnote是一部笔触式笔记本计算机。数据输入可以通过键盘、Trackpoint、设有传感器的纸张笔记本、或用stylus触碰显示屏来进行。此Thinkpad是基于前代的笔触式笔记本计算机(360P(E),730(E),755(P))扩展而来。ThinkPadT2x系列(T20,T21,T22,T23)T2x系列是采用移动奔腾III处理器的,中等尺寸的光软互换机型。采用的处理器从0.18微米工艺的700MHz奔腾III处理器到0.13微米工艺的1200MHzTualatin核心奔腾III-M处理器。标配14.1英寸XGA显示屏,Ultrabay2000设备仓位(内置一可替换的光驱),S3Savege/IX-MV显示芯片(含8MB显存,T23含16MB显存),以及CirrusLogicCS4614声音芯片。以上的配置在不同的机型中有细微的变化。该系列中引入了称为Thinklight的键盘照明设备,位于显示屏上框正中偏左的位置,使用Fn+PgUp键可以将其打开。其合成材料屏幕上盖用钛合金加强。系统可以使用MiniPCI扩展卡,可能是调制解调器和/或Ethernet网络适配卡。
在某些型号的T23中,内置有符合Wi-Fi标准的无线网络天线,使得使用MiniPCI接口的无线网卡成为可能。T2x系列并不含有后续型号中采用的主动式硬盘保护装置和指点杆触摸板二合一设备。T系列被黑色无光橡胶涂层覆盖,屏幕上盖边含有勾扣,在合上笔记本电脑后与基座扣合,可有效消除上盖的扭曲。这是一个外观相当时髦,功能多样,有磨砂质感,且可方便地拆装和升级的系列。ThinkPadT3x系列只有T30型号。使用IntelMobilePentium4,速度从1.6GHz至2.4GHz。显示适配器使用Radeon7500,有16MB独立的显示内存,显示器大小为14.1吋,分辨率为1024x768或1400x1050。包括内建安全子系统,UltraNavtouchpad,256MB标准内存,内建20/40/60GB硬盘,UltrabayPlusdrive,无线网络,以及Bluetooth。它的壳是强化过的钛合金,和T4x系列比起来稍微巨大些。ThinkPadT4x系列包括T40,T41,T42,T43以及其包含的“p”系列(高性能"Performance"例如T43p)。一台典型的T4X机器重约2.2kg(4.9磅),略比600系列小巧,而其特点是应用了IntelPentiumM(英特尔奔腾M)处理器(从IntelPentiumM1.3Ghz到[email protected]),14.1或15英寸LCD(液晶显示器)(XGA,SXGA+标准),型使用了集成显卡IntelGMA900(IntelGraphicsMediaAdapter900)或独立的显卡(ATIRadeon7500,9000,X300,FireGL9000,9600,FireGLT2及FireGLV32000,其硬盘有从30GB到100GB不等的容量,并应用了ActiveProtectionSystem(活动保护系统,官方称为安全气囊技术)以保护硬盘(T41及以后的型号)。"p"系列(移动工作站型)采用14英寸SXGA+或15英寸UXGAFlexView显示屏(拥有超宽视角和高密度像素,分辨率可达1600x1200)。这些大屏幕型号明显地比同系列型号要重,包含光驱和电池的重量为2.7公斤。某些T42和T43型号内置有光学指纹识别装置。ThinkPadT6x系列到2008年为止包括T60及T61系列,作为T4x系列的换代产品,这是T系列首次采用英特尔双核技术的酷睿处理器。ThinkPadX2x系列(X20,X21,X22,X23,X24)X2x系列是采用移动式奔腾3处理器,总重量小于2公斤的机器。其中中央处理器的频率从500MHz到1+GHz。其他部件包括12.1inchXGA液晶显示器,ATiRageMobilityM1(X20,X21)或者RadeonMobilityM6(X22,X23,X24)显卡。并且采用了miniPCI界面的调制解调器或者网卡。在X22和以后的机器上面还能够支持无线网卡。Ultrabay2000光驱能够安装在Ultrabase接口的光软互换槽里,并且在安装了辅助电池后能够支持机器工作高达5小时。ThinkPadX3xseries(X30,X31,X32)使用IntelPentiumIIIMobile(X30)或PentiumM(X31,X32)配有12.1吋XGA显示器,FireWire及USB端口,CompactFlash卡插槽。没有内建光驱。ThinkPadX4xSeries是超级轻的X系列示范,只有1.2公斤(2.7磅),比前一系列X31轻了25%ThinkPadX6xSeries(X60,X60s,X60t,X61,X61s,X61t)是第一个使用Intel"Yonah"双核心处理器的X系列ThinkPad。ThinkPadX300系列超轻薄型笔记本。13.3英寸LED背光显示屏,重量大约1.13公斤,CPU采用(2.0Ghz/880Mhz),64GBSSD,最高4GBDDR2PC2-5300内存,电池使用时长4小时.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
介绍一下目前的主流ThinkPad机型
SL300/SL400/SL500
R400
T400/T400s/T500
W500/W700/W700ds
X200/X200s/X200T
X300/X301
前面的字母是机型的系列,第一位数字是屏幕尺寸,最后面的字母代表机器
的某种特殊属性
各系列简介:按官方说明
SL:成长型全功能笔记本
专为成长型企业量身定制,集性能、无线及多媒体功能于一身、
可轻松投入的笔记本电脑
R: 高性价比的典范
具有主流性能与 ThinkPad 特性,具备高性价比,是理想的家庭
及办公的笔记本工具
T: 性能与便携的完美平衡
将强大的性能与便携性完美结合,并包括更为强大、专业的已通
过ISV认证的移动工作站
W: 终极移动工作站
ThinkPad 移动工作站采用英特尔酷睿2计算技术和 NVIDIA 高端独立显卡
X: 终极便携
极致轻薄设计,超长电池使用时间专为移动商务人士设计, 产品
包括全新的轻薄领袖 ThinkPad
尾部字母的说明
s: 极致便携,一般采用低电压cpu或者超低电压cpu,最轻便,续航最长,性能最低
t: 旋转屏电脑,具有手写功能
ds:仅有W700ds一款,除了主显示屏之外还有一块辅助显示屏
[编辑本段]ThinkPad 系列分类
以下是ThinkPad近年来所有系列的列表
ThinkPad A系列: 取“All-in-one”的意思,重量重,体积大,总共拥有3个驱动器插槽,其中2个是可换的。部分型号以“p”结尾的机型是ThinkPad中最先使用15英寸UXGA“FlxView”液晶显示屏技术的。该系列已于2002年停产。
ThinkPad G系列: 台式机替代机型,使用台式机处理器,重量重,体积大,电池续航时间短。该系列已于2005年停产。
ThinkPad i 系列: 价钱便宜的低端机型,由第三方厂商(如宏基、长城)在IBM的技术许可下代工生产。该系列已于2001年停产。
ThinkPad R系列: i系列和A系列合流形成R系列,拥有两个内置驱动器,其中一个可换。低端机型继承i系列的传统继续走低价道路,其余机型设计成“移动工作站”来代替已停产的A系列。
ThinkPad S系列: Subnotebook,相当小且相当轻便,仅向日本市场销售。
ThinkPad T系列: ThinkPad的旗舰机型,相当轻薄,高端商务机型。拥有两个内置驱动器,其中一个可换。
ThinkPad X系列: Subnotebook, 异常轻便小巧,内置硬盘,无光盘驱动器,12英寸液晶显示屏。其中2005年7月发布的X41T、2006年11月发布的X60t、2008年3月发布的x61t以及2008年10月发布的x200t属于平版电脑。
ThinkPad Z系列: 自2005年开始生产,Lenovo收购IBMPC事业部后推出的首个系列,首个宽屏笔记本,首个专为娱乐而设计的ThinkPad。
ThinkPad SL系列:2008年专为中小型企业推出的笔记本,首次在外壳上采用钢琴烤漆,性价比高。
ThinkPad W系列:2008年重新继承A系列,继承融合“All in one"的笔记本产品,同是一个体积大,重量重,配置高,性能强劲的移动工作站系列。
[编辑本段]其他
Thinkpad是开源码操作系统OpenBSD开发人员当中最受欢迎的携带型计算机,而ThinkPad X40更是最受系统支持的携带型计算机型号之一。
有些人怀疑在Lenovo收购IBM之后在笔记本硬件品质上做了缩水,如镁质防滚架被镂空(也有人认为这是在没有降低机身强度下减轻机身重量的明智之举,在模具制作上有技术难度),T系列某些型号取消了镁合金机盖,闭合屏幕机身与屏幕不够严实等等。
IBM ThinkPad 品牌在2005年被中国联想收购。目前已经生产至R61,T61,X61系列。 联想将总部设在ThinkPad“发源地”日本进行生产研究 。
Thinkpad现在已经推出新的型号 SL500、SL400、SL300、R400、R500、X300、X200、T400、T500、W500、W700等。
[编辑本段]ThinkPad 辉煌15周年回顾
1992年,第一台以ThinkPad命名的笔记本电脑—ThinkPad 700C诞生,ThinkPad领导移动计算技术发展的历程从此开始。也正是从700C开始,TrackPoint (小红点)第一次出现在ThinkPad笔记本上。这一设计极为符合人体工学:用指尖轻推指点杆,底部的陶瓷板就会灵敏感应,准确定位鼠标位置和移动方向,让用户在使用的时候达到最大程度的方便与舒适。这种人性化的设计一直沿用至今,并成为ThinkPad独特象征。
1993年,ThinkPad 750C是人类历史上第一个随航天飞机进入太空的个人电脑,确立了ThinkPad品牌在笔记本电脑领域的特殊地位。ThinkPad 750C是首款支持扩展底座的笔记本电脑,它的底座设计大大扩展了笔记本电脑的外围设备的互联能力和灵活性,并获得无数殊荣,其中包括《PC Computing》“1993年最有价值产品奖”和“最佳笔记本奖”、《PC Magazine》“编辑选择奖”、《Datamation》“1993年度产品奖”等。
1994年,ThinkPad 755CD是世界上第一台带有CD-ROM驱动器的笔记本电脑,具有强大的图形处理能力和高容量的存储器,标志着笔记本电脑进入了多媒体时代。其光软互换的设计使笔记本电脑能在减轻重量和缩小尺寸的前提下而不损失接驳性能,这对整个笔记本行业今后的发展方向提供了重要的借鉴。笔记本模块化的设计,也成为日后笔记本电脑制造的业界标准。
1995年,“蝴蝶”机被纽约现在艺术博物管永久典藏,ThinkPad 701C可以说是一件键盘可伸缩的“科技工艺品”,因其在艺术和技术上具有同等高超造诣,被纽约现代艺术博物馆永久收藏。打开屏幕后,ThinkPad701C的键盘可以完全伸展开来,而合上顶盖后,又会完全收缩到机器内部,就像蝴蝶展开翅膀那样,因此被誉为“蝴蝶机”。其复杂精密的机械传动、完美的工业设计提供给用户超凡的使用体验。世界上第一款能当作投影仪使用的笔记本电脑诞生
1996年,ThinkPad 560 成为超轻超便携式电脑的典范,ThinkPad 560因为其出众的整体散热设计,成为当时市场上少见的“无风扇”超薄笔记本,这一大胆的尝试出乎当时整个业界的想象。同时它也开创了当时超便携式电脑的新典范 :机身超薄只有1.2英寸厚,重量只有1.9Kg,率先将光驱和软驱全部从笔记本上移除,并可通过红外线进行数据的无线传送和通讯。
1997年,ThinkPad 770是世界上第一款带有14.1"彩色屏幕和DVD驱动器的笔记本电脑,处理器和多媒体功能极为强大,并在通讯、存储、TrackPoint上都进行了创新,将TrackPoint更新到第四版,增加了第三个按键用来配合TrackPoint完成上下/左右的屏幕滚动,这种设计一直沿用到今天的ThinkPad笔记本电脑上。
1998年,ThinkPad 600 历史上销量最大的ThinkPad机型,首次在36.5mm的机身内置了CD-ROM驱动器,完美演绎了性能与重量之间的平衡。手感极佳的键盘和抽屉式的互换光驱设计,将“超级便携”笔记本推到了一个新的技术高峰。全尺寸键盘让用户在从普通台式机键盘转换到笔记本键盘可以不费吹灰之力,大大提高了工作效率和工作舒适性。按键结构也是历来ThinkPad的设计重点,从早期的“X”型支架到后来的“又”字型支架,触感平稳,按键柔和度和弹性的设计都恰到好处。
1999年,应用于ThinkPad 570的“Ultrabase”概念,将笔记本“超级便携”理念发展到一个新阶段。Ultrabase允许用户在保持整机不变的情况下,添加各种外围设备来提升或者扩展笔记本计算机的性能,包括软驱、光盘驱动器、第二颗硬盘、ZIP驱动器、第二块电池等。ThinkPad 570在移动时能脱离底座而保持极度的轻便,而通过扩展坞又瞬间完成大量外围设备的接驳。这在当时以全内置为主、光软互换为辅的笔记本行业简直不可想象。“变形金刚”的美誉也由此而来。
2000年,ThinkPad T系列继承了ThinkPad 600超级便携设计的精华,在不增加机身重量的同时屏幕由13.3"扩大到了14.1",通过“光软互换”完美地结合了移动性和计算性能。成功应用于ThinkPad T23笔记本上的全球第一套嵌入式安全子系统(Embedded Security Subsystem),能帮助用户在硬件上实现了对计算机内资料的安全保护。ThinkPad T系列成为进入新世纪之后全球最受欢迎的型号。
2001年,ThinkPad TransNote具备手写板和触摸屏的革命性产品,具有颠覆传统的外观,获得了当年的“全球工业设计金奖”,标志着移动计算在智能化方面的新突破。TransNote能通过手写板将你的手写记录转换为数字文件,以便存储和处理。TransNote有一个非常人性化的奇特的折叠式设计,这种完美的设计便于随时记录信息,或者会议上的无纸化笔录,而且整机重量甚至比很多文件盒还轻。
2002年,集25项专利于一身的ThinkPad X30笔记本电脑,因为它细腻而不张扬的设计,被亲切地称为黑色精灵。它当时曾一举创下四项业界第一,其中包括电池耐久达到了创纪录的8个小时,5种有线和无线通讯方式(包括有线网卡、无线网卡、红外、蓝牙以及Modem接入),在业界首先通过TCPA安全认证,以及当时唯一支持灾难数据恢复的特性。X30更进一步优化了网络连接特性,具备完整的无线解决方案,有灵活的网络连接选件,是当时业界唯一同时支持802.11b无线局域网和蓝牙技术的超轻薄笔记本电脑。在蓝牙的发展方向尚不明。
2003年,ThinkPad T40被称为ThinkPad史上又一杰作。机器更轻更薄,更长的电池使用时间和卓越的无线性能,令其对手远不能及。采用主动保护系统(APS,ActiveProtection System),用来减少硬盘在受到碰撞后崩溃的概率,彻底改变传统的使用吸震材料来吸收震动能量的方式,让笔记本电脑真正从以往的被动保护跨越到主动保护,影响深远。在局势变化的商业世界里,即使偶有跌宕,也能保护珍贵数据万无一失,安然无忧。2003年11月5日,全球第2000万台ThinkPad正式售出,它诞生于IBM在深圳与长城合资的生产厂IIPC中。
2004年,ThinkPad T42是第一台配备集成生物指纹识别技术的ThinkPad,创新地应用生物统计学技术,提高了整个PC行业的安全标准,成为最安全的笔记本电脑。生物指纹识别技术以指纹替代传统密码,配合客户端安全解决方案,为重要数据构筑坚强防御,将黑客、病毒和各种非法入侵拒于门外,轻松捍卫专署私密空间,从而成为世界上最安全的笔记本电脑。
2005年,第一台创新设计的ThinkPad平板笔记本电脑诞生,不断突破现有,ThinkPad的技术探索不断为消费者带来全新的使用体验。ThinkPad X41t平板电脑是当时业界领先的,最小最轻便的可变式12”平板电脑,它在同类产品中具有寿命最长的标准电池。该机型拥有ThinkPad X41系列笔记本的全部功能,还有独一无二的旋转铰链,可支持显示屏旋转180。 而使用平板电脑数字转换笔可直接在显示屏上进行手写操作。2005年3月,中国第一百万个ThinkPad笔记本用户诞生。
2006年,率先采用“镁制防滚架”技术,一体化成型,将内部组件牢牢固定住,将物理安全提升到了整机保护的高度。其设计原理来自于赛车的防滚架,经过测试表明,这种全新设计使内部部件所受冲击力减少30%,为内部组件形成金钟罩般的防护,提高系统稳定性;材质采用轻巧的镁合金,强韧性/重量比是一般结构性金属中最优异的。
2007年,创造性的将镁制防滚架应用于显示屏中。这一领先设计,不仅构筑了坚固的屏幕,更可屏蔽干扰,增强了笔记本的无线通讯性能。双重捍卫无价数据的同时令你的思考再无断点。 双重镁制防滚架,T系列专享服务,鹰翼散热系统,三重硬盘保护,APS主动硬盘保护技术,生物指纹识别技术,应急与恢复系统,网络自适应软件,防泼溅键盘。
思考向前 不止15年。

‘柒’ 小码哥推出的T30是个什么计划

T30计划是小码哥教育和源码时代共同实行的,发布于三月十五号,在消费者权益日当天,既是想得到大家的信任和关注,也是一种承诺,由于传统的民间办学一直以来都是以校方需求为主导,学生先缴纳学费后入学学习。所以校方的主导地位使得一些弊端的存在,不利于学生的地位。教学质量低下、学员就业无保障……甚至卷款而逃。学员的权益得不到丝毫保障,这都给教育培训行业带来负面影响,所以制定了 T30实效培训计划。这算得上是对IT培训行业的一次改革尝试,也更为社会提供源源不断的技能型人才,引领IT培训教育行业的前进 。
 其基本内容
流程是学生报名后学校通过测试筛选选拔,再签订协议,正式学习,满意后再缴纳学费
学生的主导地位体现于:1.教学阶段是让学生对学校的满意度评分,主要有:课程内容满意度;讲师授课满意度;学校管理满意度等等,把掌握权交给学生,实现师生的共同信任,不仅体现“师生共赢”的教学理念,也是“教育培训是服务行业”这一本质理念的反映。2.就业阶段承诺的目标是,参加就业指导毕业后,3个月之内找到培训学科相关工作试用期满,转正薪资达到约定标准,提供薪资证明(应届生月薪6000元,往届生月薪8000元)

‘捌’ 当前公式 : 主力 (指标画线公式) 错误句 : 详细信息 : 单词最大字符数不得超过 16 个 错误起始位置 : 2244

你看看公式语句中是否有非法的语句,或语句残缺?最好,你把公式发过来。

‘玖’ 求求field ii 实现合成孔径聚焦成像的MATLAB代码

Inverse Synthetic Aperture Radar Imaging With MATLAB Algorithms(逆合成孔径成像MATLAB算法)配书源代码,可用于学习和理解ISAR的基本算法和实现过程。
【实例截图】
【核心代码】
MatlabFiles
└── MatlabFiles
├── Appendix
│ ├── cevir2.m
│ ├── matplot.m
│ ├── matplot2.m
│ ├── shft.m
│ └── stft.m
├── Chapter1
│ ├── Figure1_1.m
│ ├── Figure1_11.m
│ ├── Figure1_2.m
│ ├── Figure1_3.m
│ ├── Figure1_5.m
│ ├── Figure1_8.m
│ ├── prince.wav
│ └── tot30.mat
├── Chapter2
│ ├── Figure2_11.m
│ ├── Figure2_15.m
│ ├── Figure2_16.m
│ ├── Figure2_17.m
│ ├── Figure2_18.m
│ ├── Figure2_19and20.m
│ └── Figure2_9.m
├── Chapter3
│ ├── Figure3_10.m
│ ├── Figure3_11.m
│ ├── Figure3_14.m
│ ├── Figure3_16.m
│ ├── Figure3_8.m
│ └── Figure3_9.m
├── Chapter4
│ ├── E_field.mat
│ ├── Es_range.mat
│ ├── Es_xrange.mat
│ ├── Esairbus.mat
│ ├── Escorner.mat
│ ├── Esplanorteta60.mat
│ ├── Figure4_14.m
│ ├── Figure4_15.m
│ ├── Figure4_18.m
│ ├── Figure4_19.m
│ ├── Figure4_20.m
│ ├── Figure4_21and22.m
│ ├── Figure4_23and24.m
│ ├── Figure4_26thru4_28.m
│ ├── Figure4_31and4_32.m
│ ├── Figure4_6.m
│ ├── Figure4_8.m
│ ├── PLANORPHI45_Es.mat
│ ├── airbusteta80_2_xyout.mat
│ ├── fighterSC.mat
│ ├── planorphi45_2_xyout.mat
│ ├── planorteta60_2_xyout.mat
│ ├── planorteta60xzout.mat
│ └── planorteta60yzout.mat
├── Chapter5
│ ├── Esairbus.mat
│ ├── Esplanorteta60.mat
│ ├── Figure5_10ab.m
│ ├── Figure5_10cd.m
│ ├── Figure5_10ef.m
│ ├── Figure5_11.m
│ ├── Figure5_12thru18.m
│ ├── Figure5_19ab.m
│ ├── Figure5_19cd.m
│ ├── Figure5_19ef.m
│ ├── Figure5_4.m
│ ├── Figure5_9.m
│ ├── airbusteta80_2_xyout.mat
│ ├── fighterSC.mat
│ ├── planorteta60_2_xyout.mat
│ └── ucak.mat
├── Chapter6
│ ├── CoutUssFletcher.mat
│ ├── Fighter.mat
│ ├── Figure6_14thru19.m
│ └── Figure6_21thru23.m
├── Chapter7
│ ├── Es60.mat
│ ├── Figures7_2thru7_8.m
│ ├── Figures7_9thru7_13.m
│ ├── MP.mat
│ ├── SC.mat
│ └── planorteta60_2_xyout.mat
└── Chapter8
├── Fighter.mat
├── Fighter2.mat
├── Fighter3.mat
├── Figure8_14.m
├── Figure8_15.m
├── Figure8_16thru8_22.m
├── Figure8_2thru8_6.m
├── Figure8_7thru8_12.m
└── scat_field.mat
10 directories, 85 files

‘拾’ 求MD5加密算法的C语言源码

(转载) #include <stdio.h> #include <stdlib.h> #include <memory.h> #include <time.h> #include <errno.h> #include <string.h> #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #include "../md5/md5.h" #define T1 0xd76aa478 #define T2 0xe8c7b756 #define T3 0x242070db #define T4 0xc1bdceee #define T5 0xf57c0faf #define T6 0x4787c62a #define T7 0xa8304613 #define T8 0xfd469501 #define T9 0x698098d8 #define T10 0x8b44f7af #define T11 0xffff5bb1 #define T12 0x895cd7be #define T13 0x6b901122 #define T14 0xfd987193 #define T15 0xa679438e #define T16 0x49b40821 #define T17 0xf61e2562 #define T18 0xc040b340 #define T19 0x265e5a51 #define T20 0xe9b6c7aa #define T21 0xd62f105d #define T22 0x02441453 #define T23 0xd8a1e681 #define T24 0xe7d3fbc8 #define T25 0x21e1cde6 #define T26 0xc33707d6 #define T27 0xf4d50d87 #define T28 0x455a14ed #define T29 0xa9e3e905 #define T30 0xfcefa3f8 #define T31 0x676f02d9 #define T32 0x8d2a4c8a #define T33 0xfffa3942 #define T34 0x8771f681 #define T35 0x6d9d6122 #define T36 0xfde5380c #define T37 0xa4beea44 #define T38 0x4bdecfa9 #define T39 0xf6bb4b60 #define T40 0xbebfbc70 #define T41 0x289b7ec6 #define T42 0xeaa127fa #define T43 0xd4ef3085 #define T44 0x04881d05 #define T45 0xd9d4d039 #define T46 0xe6db99e5 #define T47 0x1fa27cf8 #define T48 0xc4ac5665 #define T49 0xf4292244 #define T50 0x432aff97 #define T51 0xab9423a7 #define T52 0xfc93a039 #define T53 0x655b59c3 #define T54 0x8f0ccc92 #define T55 0xffeff47d #define T56 0x85845dd1 #define T57 0x6fa87e4f #define T58 0xfe2ce6e0 #define T59 0xa3014314 #define T60 0x4e0811a1 #define T61 0xf7537e82 #define T62 0xbd3af235 #define T63 0x2ad7d2bb #define T64 0xeb86d391 static void md5_process(md5_state_t *pms, const md5_byte_t *data /*[64]*/) { md5_word_t a = pms->abcd[0], b = pms->abcd[1], c = pms->abcd[2], d = pms->abcd[3]; md5_word_t t; #ifndef ARCH_IS_BIG_ENDIAN # define ARCH_IS_BIG_ENDIAN 1 /* slower, default implementation */ #endif #if ARCH_IS_BIG_ENDIAN /* * On big-endian machines, we must arrange the bytes in the right * order. (This also works on machines of unknown byte order.) */ md5_word_t X[16]; const md5_byte_t *xp = data; int i; for (i = 0; i < 16; i, xp = 4) X[i] = xp[0] (xp[1] << 8) (xp[2] << 16) (xp[3] << 24); #else /* !ARCH_IS_BIG_ENDIAN */ /* * On little-endian machines, we can process properly aligned data * without ing it. */ md5_word_t xbuf[16]; const md5_word_t *X; if (!((data - (const md5_byte_t *)0) & 3)) { /* data are properly aligned */ X = (const md5_word_t *)data; } else { /* not aligned */ memcpy(xbuf, data, 64); X = xbuf; } #endif #define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32 - (n)))) /* Round 1. */ /* Let [abcd k s i] denote the operation a = b ((a F(b,c,d) X[k] T[i]) <<< s). */ #define F(x, y, z) (((x) & (y)) | (~(x) & (z))) #define SET(a, b, c, d, k, s, Ti)\ t = a F(b,c,d) X[k] Ti;\ a = ROTATE_LEFT(t, s) b /* Do the following 16 operations. */ SET(a, b, c, d, 0, 7, T1); SET(d, a, b, c, 1, 12, T2); SET(c, d, a, b, 2, 17, T3); SET(b, c, d, a, 3, 22, T4); SET(a, b, c, d, 4, 7, T5); SET(d, a, b, c, 5, 12, T6); SET(c, d, a, b, 6, 17, T7); SET(b, c, d, a, 7, 22, T8); SET(a, b, c, d, 8, 7, T9); SET(d, a, b, c, 9, 12, T10); SET(c, d, a, b, 10, 17, T11); SET(b, c, d, a, 11, 22, T12); SET(a, b, c, d, 12, 7, T13); SET(d, a, b, c, 13, 12, T14); SET(c, d, a, b, 14, 17, T15); SET(b, c, d, a, 15, 22, T16); #undef SET /* Round 2. */ /* Let [abcd k s i] denote the operation a = b ((a G(b,c,d) X[k] T[i]) <<< s). */ #define G(x, y, z) (((x) & (z)) | ((y) & ~(z))) #define SET(a, b, c, d, k, s, Ti)\ t = a G(b,c,d) X[k] Ti;\ a = ROTATE_LEFT(t, s) b /* Do the following 16 operations. */ SET(a, b, c, d, 1, 5, T17); SET(d, a, b, c, 6, 9, T18); SET(c, d, a, b, 11, 14, T19); SET(b, c, d, a, 0, 20, T20); SET(a, b, c, d, 5, 5, T21); SET(d, a, b, c, 10, 9, T22); SET(c, d, a, b, 15, 14, T23); SET(b, c, d, a, 4, 20, T24); SET(a, b, c, d, 9, 5, T25); SET(d, a, b, c, 14, 9, T26); SET(c, d, a, b, 3, 14, T27); SET(b, c, d, a, 8, 20, T28); SET(a, b, c, d, 13, 5, T29); SET(d, a, b, c, 2, 9, T30); SET(c, d, a, b, 7, 14, T31); SET(b, c, d, a, 12, 20, T32); #undef SET

热点内容
编译期错误提示 发布:2024-10-07 20:07:23 浏览:296
阿里云服务器打开慢 发布:2024-10-07 20:06:33 浏览:577
磁存储行业的前景 发布:2024-10-07 20:01:29 浏览:548
android对象序列化 发布:2024-10-07 20:01:28 浏览:760
安卓上面的微信如何恢复 发布:2024-10-07 19:57:45 浏览:52
510低配包括哪些配置 发布:2024-10-07 19:38:21 浏览:556
ping服务器地址一直丢包 发布:2024-10-07 19:37:34 浏览:588
怎么去除手机锁屏密码 发布:2024-10-07 18:56:05 浏览:67
怎样注册手机贴吧账号密码是什么 发布:2024-10-07 18:55:17 浏览:365
端口安全配置属于什么 发布:2024-10-07 18:41:01 浏览:794