<%@ Page Language="C#" AutoEventWireup="true" CodeFile="10进制转16进制.aspx.cs" Inherits="数据算法_10进制转16进制" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>10进制16进制互转</title>
</head>
<body>
<form id="form1" runat="server">
<div>
10进制:<asp:TextBox ID="P10jz" runat="server"></asp:TextBox><br />
<br />
16进制:<asp:TextBox ID="P16jz" runat="server"></asp:TextBox><br />
<br />
<asp:Button ID="aetu" runat="server" Text="16转10" OnClick="zuan" />
<asp:Button ID="Button1" runat="server" Text="10转16" OnClick="zuan16" />
</div>
</form>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>10进制16进制互转</title>
</head>
<body>
<form id="form1" runat="server">
<div>
10进制:<asp:TextBox ID="P10jz" runat="server"></asp:TextBox><br />
<br />
16进制:<asp:TextBox ID="P16jz" runat="server"></asp:TextBox><br />
<br />
<asp:Button ID="aetu" runat="server" Text="16转10" OnClick="zuan" />
<asp:Button ID="Button1" runat="server" Text="10转16" OnClick="zuan16" />
</div>
</form>
</body>
</html>
Cs 文件
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class 数据算法_10进制转16进制 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// 10 进制 与16进制互转函数
/// </summary>
/// <param name="Shu">传入 10 进制 与16进制 数</param>
/// <returns></returns>
public void DateShu(string Shu)
{
}
/// <summary>
/// 判断一个字符串是不是 16 进制
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public bool Is16Jinz(string str)
{
bool reutn=false;
//把一个字符串转换成 char 数组
char[] baseAscII = str.ToUpper().ToCharArray();// ascII 48-57(0-9) ; 65-70(A-F)
for (int i = 0; i < baseAscII.Length; i++)
{
//如果字符 串为0-9 , A-F
if (System.Text.RegularExpressions.Regex.IsMatch((baseAscII[i]).ToString(), "[0-9]") || System.Text.RegularExpressions.Regex.IsMatch((baseAscII[i]).ToString(), "[A-F]"))
{
reutn = true;
}
else
{
reutn = false;
break;
}
// Response.Write(((int)baseAscII[i]).ToString());
}
return reutn;
}
/// <summary>
/// 传入一个字符串 如果是16进制的就把他转成10进制的
/// 10进制的就把他转成 16进制的
/// </summary>
/// <param name="str16">要转化的字符串 </param>
/// <param name="str16">要转化的进制 如转10进制 就写 10 </param>
/// <returns></returns>
public String GetJinZiShu(string Str16,int shu)
{
int Str10;
// 10 转16进制
if (shu == 16)
{
try
{
int.Parse(Str16);//如果是16就会出错
return int.Parse(Str16).ToString("X");
}
catch
{
}
}
//16进制 转 10 进制 将十位数乘以16加上个位数。如5A,将5乘以16得80,加上A的10进制10,结果是90。
if (Is16Jinz(Str16)&&shu==10)
{
Str10 = int.Parse(Str16, System.Globalization.NumberStyles.AllowHexSpecifier);
return Str10.ToString();
}
return "";
}
protected void zuan(object sender, EventArgs e)
{
if (Is16Jinz(P16jz.Text.Trim()))
{
Response.Write("是:" + GetJinZiShu(P16jz.Text.Trim(),10));
}
else
{
Response.Write("不是");
}
}
protected void zuan16(object sender, EventArgs e)
{
Response.Write("是:"+GetJinZiShu(P10jz.Text.Trim(),16));
}
}
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class 数据算法_10进制转16进制 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// 10 进制 与16进制互转函数
/// </summary>
/// <param name="Shu">传入 10 进制 与16进制 数</param>
/// <returns></returns>
public void DateShu(string Shu)
{
}
/// <summary>
/// 判断一个字符串是不是 16 进制
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public bool Is16Jinz(string str)
{
bool reutn=false;
//把一个字符串转换成 char 数组
char[] baseAscII = str.ToUpper().ToCharArray();// ascII 48-57(0-9) ; 65-70(A-F)
for (int i = 0; i < baseAscII.Length; i++)
{
//如果字符 串为0-9 , A-F
if (System.Text.RegularExpressions.Regex.IsMatch((baseAscII[i]).ToString(), "[0-9]") || System.Text.RegularExpressions.Regex.IsMatch((baseAscII[i]).ToString(), "[A-F]"))
{
reutn = true;
}
else
{
reutn = false;
break;
}
// Response.Write(((int)baseAscII[i]).ToString());
}
return reutn;
}
/// <summary>
/// 传入一个字符串 如果是16进制的就把他转成10进制的
/// 10进制的就把他转成 16进制的
/// </summary>
/// <param name="str16">要转化的字符串 </param>
/// <param name="str16">要转化的进制 如转10进制 就写 10 </param>
/// <returns></returns>
public String GetJinZiShu(string Str16,int shu)
{
int Str10;
// 10 转16进制
if (shu == 16)
{
try
{
int.Parse(Str16);//如果是16就会出错
return int.Parse(Str16).ToString("X");
}
catch
{
}
}
//16进制 转 10 进制 将十位数乘以16加上个位数。如5A,将5乘以16得80,加上A的10进制10,结果是90。
if (Is16Jinz(Str16)&&shu==10)
{
Str10 = int.Parse(Str16, System.Globalization.NumberStyles.AllowHexSpecifier);
return Str10.ToString();
}
return "";
}
protected void zuan(object sender, EventArgs e)
{
if (Is16Jinz(P16jz.Text.Trim()))
{
Response.Write("是:" + GetJinZiShu(P16jz.Text.Trim(),10));
}
else
{
Response.Write("不是");
}
}
protected void zuan16(object sender, EventArgs e)
{
Response.Write("是:"+GetJinZiShu(P10jz.Text.Trim(),16));
}
}
Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=1763032