关闭

C# 10进制 16进制 互转

标签: c#textboxserveraspbuttonobject
5501人阅读 评论(0) 收藏 举报
<%@ 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 />
        
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
        
<asp:Button ID="aetu" runat="server" Text="16转10" OnClick="zuan" />
        
&nbsp; &nbsp;&nbsp;
                                     
<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));
        
    }
}


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1763032

 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:18039次
    • 积分:187
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:13篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论