这是为什么呢?唉!我的八进制是这样的,
public static int BaToShi(string data)
{
int s;
int sum = 0;
int p = 1;
for (int i = data.Length - 1; i >= 0; i--)
{
s = Convert.ToInt16(data[i]);
s = s * p;
p = p * 8;
sum = sum + s;
}
return sum;
}
我的16进制还是这样的,怎么就不对了???求解释啊。
public static int ShiLiuToShi(string data)
{
char c;
int s;
int sum = 0;
int p = 1;
for (int i = data.Length - 1; i >= 0; i--)
{
c=data[i];
switch (c)
{
case 'A': s = 10; break;
case 'B': s = 11; break;
case 'C': s = 12; break;
case 'D': s = 13; break;
case 'E': s = 14; break;
case 'F': s = 15; break;
default: s = Convert.ToInt16(c); break;
}
s = s * p;
p = p * 16;
sum = sum + s;
}
return sum;
}
在线等你们哦
解决方案 »
- 求助如何在前台验证用户名是否存在
- c# 画抛物线
- 各位,小弟请教个用C#模拟登录discuz论坛问题!
- LABEL显示 隐藏 闪烁
- 怎么在程序里实现outlook以约会的形式发邮件
- 如何从DateTime类型得到一个"YYYYMMDDHHMMSS"的字符串?比如2008年3月18日17点5分8秒“20080318170508”
- 简单问题!——————————————————————————————————————
- 请问 权值 用英语怎么翻译?
- C#中怎样获取网络可用服务器名
- 如何在后台代码里生成这样的TextBlock控件?
- 网站网页有状况,各位大神,菜鸟求助!!!
- 我用C#写的局域网聊天工具但是总是掉线
/// 十进制数转换成非十进制数
/// </summary>
/// <param name="int_value">十进制数</param>
/// <param name="mod">模</param>
/// <returns>非十进制数</returns>
public static string IntToHex(int int_value, int mod)
{
string hex_value = string.Empty;
int add_value, mod_value, temp;
char char_mod_value;
temp = int_value;
while (temp > 0)
{
add_value = temp / mod;
mod_value = temp % mod;
if (mod_value >= 10)
{
char_mod_value = (char)(mod_value + 55);
}
else
{
char_mod_value = (char)(mod_value + 48);
}
hex_value = char_mod_value + hex_value;
temp = add_value;
}
return hex_value; ;
} /// <summary>
/// 非十进制数转换成十进制
/// </summary>
/// <param name="hex_value">非十进制数</param>
/// <param name="mod">模</param>
/// <returns>十进制数</returns>
public static int HexToInt(string hex_value, int mod)
{
int value = 0;
for (int i = 0; i < hex_value.Length; i++)
{
int asc = Convert.ToInt32(hex_value[i]);
if (asc >= 65)
{
value = value + Convert.ToInt32((asc - 55) * System.Math.Pow(Convert.ToDouble(mod), Convert.ToDouble(hex_value.Length - i - 1)));
}
else
{
value = value + Convert.ToInt32((asc - 48) * System.Math.Pow(Convert.ToDouble(mod), Convert.ToDouble(hex_value.Length - i - 1)));
}
}
return value;
}