进制转换
- <HTML>
- <HEAD>
- <META http-equiv='Content-Type' content='text/html; charset=gb2312'>
- <TITLE>功能要较强的数字进制转换的脚本</TITLE>
- <SCRIPT LANGUAGE="JavaScript">
- <!-- Begin
- var hex = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F");
- function CKparseInt(n, r) {
- for (var i = 0; i < n.length; ++i)
- if (n.charAt(i) >= r) {
- alert("格式错");
- return 0;
- }
- if (isNaN(M = parseInt(n, r)))
- alert ("格式错");
- return M;
- }
- // decimal to any other base 2 to 16
- function DecimaltoAnother(A, radix) {
- s = "";
- while (A >= radix) {
- s += hex[A % radix]; // remainder
- A = Math.floor(A / radix); // quotient, rounded down
- }
- return transpose(s += hex[A]);
- }
- // string reversal
- function transpose(s) {
- N = s.length;
- for (i = 0,t = ""; i < N; i++)
- t += s.substring(N-i-1, N-i); // s.substring(from, to)
- return t;
- }
- // convert item.value using radix
- function EvalAny(item, r) {
- M = CKparseInt(item.value, r); // check this one
- for (var i = 0, MyForm = document.forms[0]; i < MyForm.length; ++i) // re-evaluate all
- MyForm.elements[i].value = DecimaltoAnother(M, MyForm.elements[i].name.substr(1,3));
- }
- // End -->
- </script>
- </HEAD>
- <BODY >
- <center>
- <h3>进制转换</h3>
- <br>
- <form method="post">
- <table border=0 align=center>
- <tr>
- <td align=right>
- <p>二进制:</p>
- </td>
- <td><input name="b002" value="0" onChange="EvalAny(this, 2)" size=27></td>
- </tr>
- <tr>
- <td align=right>三进制:</td>
- <td><input name="t003" value="0" onChange="EvalAny(this, 3)" size=21></td>
- </tr>
- <tr>
- <td align=right>五进制:</td>
- <td><input name="q005" value="0" onChange="EvalAny(this, 5)" size=16></td>
- </tr>
- <tr>
- <td align=right>八进制:</td>
- <td><input name="o008" value="0" onChange="EvalAny(this, 8)" size=12></td>
- </tr>
- <tr>
- <td align=right>十进制:</td>
- <td><input name="d010" value="0" onChange="EvalAny(this, 10)" size=11></td>
- </tr>
- <tr>
- <td align=right>十六进制:</td>
- <td><input name="h016" value="0" onChange="EvalAny(this, 16)" size=8></td>
- </tr>
- </table>
- </form>
- </center>
- </BODY></HTML>
支持负数的16进制转换
- var errCode = -1474953214;
- function memoryHex(value)
- {
- return (value >= 0 ? value : 0x100000000 + value).toString(16)
- }
- alert(memoryHex(errCode));
产生随机色
- function colorFormat(color)
- {
- var s = color.toString(16);
- var l = s.length;
- return "#" + "000000".substring(l) + s;
- }
- var color = Math.ceil(0x1000000 * Math.random());
- alert(colorFormat(color));
- alert(("000000" + Math.ceil(0x1000000 * Math.random()).toString(16)).replace(/^.*(.{6})$/, "#$1"));