<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<script type="text/javascript" src="../Scripts/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="../Scripts/data.js"></script>
<script type="text/javascript" src="../Scripts/common.js"></script>
<title>電腦</title>
<style type="text/css">
body {
width: 100%;
height: 100%;
font-family: Microsoft YaHe;
font-size: 11px;
}
label {
font-family: Microsoft YaHe;
font-size: 12px;
}
input[type="button"] {
width: 100%;
height: 100%;
border: 0px;
background-color: #0A78FF;
background-image: url(1.png);
background-repeat: repeat-x;
}
input[type="button"]:hover {
background-image: url(1s.png);
}
#zero {
width: 100%;
height: 100%;
}
#equre {
width: 100%;
height: 100%;
background-image: url(2.png);
}
#equre:hover {
background-image: url(2s.png);
}
td {
border: 1px gray solid;
}
.inner td {
border: 0px;
width: 46px;
}
</style>
</head>
<body>
<table id="er" style="background-color: #0A78FF;">
<tr>
<td colspan="9" style="height:50px;text-align:right;vertical-align:bottom">
<input type="txet" id="inp1" style="width: 400px; height: 50px;" disabled />
</td>
</tr>
<tr>
<td colspan="9">
<table class="inner" frame="void" rules="none">
<tr>
<td colspan="1">0000</td>
<td>0000</td>
<td>0000</td>
<td>0000</td>
<td>0000</td>
<td>0000</td>
<td>0000</td>
<td>0000</td>
</tr>
<tr>
<td colspan="4">63</td>
<td colspan="3">47</td>
<td>32</td>
</tr>
<tr>
<td>0000</td>
<td>0000</td>
<td>0000</td>
<td>0000</td>
<td>0000</td>
<td>0000</td>
<td>0000</td>
<td>0000</td>
</tr>
<tr>
<td colspan="4">31</td>
<td colspan="3">15</td>
<td>0</td>
</tr>
</table>
</td>
</tr>
<tr>
<td rowspan="3">
<input type="radio" name="jinzhi" id="shiliu"/><label>十六進制</label><br />
<input type="radio" name="jinzhi" checked="checked"/><label>十進制</label><br />
<input type="radio" name="jinzhi" id="ba"/><label>八進制</label><br />
<input type="radio" name="jinzhi" id="er"/><label>二進制</label>
</td>
<td></td>
<td><input type="button" value="Mod" /></td>
<td><input type="button" value="A" /></td>
<td><input type="button" value="MC"/></td>
<td><input type="button" value="MR" /></td>
<td><input type="button" value="MS" /></td>
<td><input type="button" value="M+" /></td>
<td><input type="button" value="M-" /></td>
</tr>
<tr>
<td><input type="button" value="(" οnclick="yi(this)"/></td>
<td><input type="button" value=")"οnclick="yi(this)" /></td>
<td><input type="button" value="B" /></td>
<td><input type="button" value="←" /></td>
<td><input type="button" value="CE" οnclick="qingchua()"/></td>
<td><input type="button" value="C" /></td>
<td><input type="button" value="+/-" /></td>
<td><input type="button" value="√" /></td>
</tr>
<tr>
<td><input type="button" value="RoL" /></td>
<td><input type="button" value="RoR" /></td>
<td><input type="button" value="C" /></td>
<td><input type="button" value="7" οnclick="yi(this)"/></td>
<td><input type="button" value="8" οnclick="yi(this)"/></td>
<td><input type="button" value="9" οnclick="yi(this)"/></td>
<td><input type="button" value="/" οnclick="yi(this)"/></td>
<td><input type="button" value="%" /></td>
</tr>
<tr>
<td rowspan="3">
<input type="radio" name="zi" checked="checked"/><label>四字</label><br />
<input type="radio" name="zi" /><label>雙字</label><br />
<input type="radio" name="zi" /><label>字</label><br />
<input type="radio" name="zi" /><label>位元組</label>
</td>
<td><input type="button" value="Or" /></td>
<td><input type="button" value="Xor" /></td>
<td><input type="button" value="D" /></td>
<td><input type="button" value="4" οnclick="yi(this)" /></td>
<td><input type="button" value="5" οnclick="yi(this)" /></td>
<td><input type="button" value="6" οnclick="yi(this)"/></td>
<td><input type="button" value="*" οnclick="yi(this)"/></td>
<td><input type="button" value="1/x" /></td>
</tr>
<tr>
<td><input type="button" value="Lsh" /></td>
<td><input type="button" value="Rsh" /></td>
<td><input type="button" value="E" /></td>
<td><input type="button" value="1" οnclick="yi(this)"/></td>
<td><input type="button" value="2" οnclick="yi(this)"/></td>
<td><input type="button" value="3" οnclick="yi(this)"/></td>
<td><input type="button" value="-" οnclick="yi(this)"/></td>
<td rowspan="2"><input type="button" id="equre" value="=" οnclick="jieguo()"/></td>
</tr>
<tr>
<td><input type="button" value="Not" /></td>
<td><input type="button" value="And" /></td>
<td><input type="button" value="F" /></td>
<td colspan="2"><input id="zero" type="button" value="0" οnclick="yi(this)"/></td>
<td><input type="button" value="." οnclick="yi(this)" /></td>
<td><input type="button" value="+" οnclick="yi(this)"/></td>
</tr>
</table>
<script type="text/javascript">
function yi(r) {
//r是input r.value 取值
//var val= r.value;
//id的資料=ID資料拼接參數的資料
inp1.value = inp1.value + r.value;
//id 定到 文本
//var f = document.getElementById("inp1");
//f.value 舊值 加上 r.value 取值 等于f.value
//f.value = f.value + val;
}
function jieguo() {
//id 定到 文本 取值
var shuju = document.getElementById("inp1").value;
//str 等于 文本值
var str = shuju;
//調用calc
alert(calc(str));
}
function calc(expr) {
//在函數calc内查找expr第一個右括号")";
var xiabiao1 = expr.indexOf(")");
if (xiabiao1 == -1) {
return calcout(expr);
}
//找到expr第一個右括号前面緊臨的左括号"(";
//找到 第一個右括号 前面 緊臨
var xiabiao2 = expr.lastIndexOf("(", xiabiao1);
//聲明一個變量subexpr,截取右括号和左括号找到括号中間的字元串并指派給subexpr
var subexpr = expr.substring(xiabiao2 + 1, xiabiao1);
var l = expr.substring(0, xiabiao2);//截取左括号之前的數
//調用
var m = calcout(subexpr);//括号裡的數
var r = expr.substring(xiabiao1 + 1);//截取右括号之後的數
return calc(l + m + r);//拼接式子
}
function isNum(cr) {
return "0123456789".indexOf(cr) > -1;
}
//bijiao 比較符号的優先級
function bijiao(bijiao1, bijiao2) {
if (bijiao1 == -1) {
return bijiao2;
}
if (bijiao2 == -1) {
return bijiao1;
}
if (bijiao1 > bijiao2) {
return bijiao2;
} else {
return bijiao1;
}
}
//聲明一個函數calcout,接收一個參數expr2,調用calcout;
function calcout(expr2) {
//在calcout内,查找expr2中的符号"*","/"如果沒有就查找符号"+","-"
var index =bijiao(expr2.indexOf("*"),expr2.indexOf("/"));//查找expr2中的符号"*"
if(index == -1) {
index =bijiao(expr2.indexOf("+"),expr2.indexOf("-"));//就查找符号"+"
}if (index == -1) {
//return expr2;
var f = document.getElementById("inp1").value = "";
var w = document.getElementById("inp1");
w.value = expr2;
if (expr2 == "NaN") {
w.value = 0;
return 0;
}
return (expr2);
}
//查找字元串中的乘号除号,加号減号,取出加号前面和後面的數字
var num1 = "";
var i = index - 1;
for (; i >= 0; i--) {//循環
var numi = expr2.charAt(i);
if (isNum(numi) || "." == numi) {
num1 = numi + num1;// isNum 傳回繼續循環 或 遇見小數點計算
continue;
}
break;
}
i++;
var num2 = "";
var j = index + 1;
for (; j < expr2.length; j++) {//循環
var numi = expr2.charAt(j);
if (isNum(numi) || "." == numi) {
num2 = num2 + numi;// isNum 傳回繼續循環 或 遇見小數點計算
continue;
}
break;
}
var newnum = calc2(num1 - 0, expr2.charAt(index), num2 - 0);//調用 計算
return calcout(expr2.substring(0, i) + newnum + expr2.substring(j));//calcout
}
//建立一個函數,有3個參數,分别是num1,calc,num2。num1和num2是數字,calc是符号,有可能的符号包括+-*/,根據calc不同分别傳回num1和num2的和差積商。
function calc2(num1, calc, num2) {
if (calc == "+") {
return num1 + num2;
}
else if (calc == "-") {
return num1 - num2;
}
else if (calc == "*") {
return num1 * num2;
}
else if (calc == "/") {
return num1 / num2;
}
return 0;
}
function qingchua() {
var qc = document.getElementById("inp1").value="";
}
</script>
</body>
</html>