- http://www.cnblogs.com/wangxiaodou/articles/2073249.html
二进制与十进制十六进制的相互转换
二进制由0;1组成
十进制由0;1;2;3;4;5;6;7;8;9组成
十六进制由0;1;2;3;4;5;6;7;8;9;A;B;C;D;E;F组成
1.二进制转十进制;
先写出二进制的基数:2的n(n= 0.1.2.3.4.5.6…..)次方然后再依次从右向左写入二进制,最后用所得二进制为1下的基数相加所得的总和即为二进制所对应的十进制数;
Eg:将二进制数1110011转换为十进制数;
先写出二进制的基数,再写出二进制数;(从左向右写)
128.64.32.16.8.4.2.1
1. 1 . 1 0. 0. 1. 1
然后用二进制为1的数所对应的基数相加,二进制为0的不加。即;
64+32+16+2+1=115
所以1110011所对应的十进制数为;115。
2.十进制转换成二进制:
同样先写出二进制的基数;2的n(n=0.1.2.3.4.5.6…..)然后用十进制数和二进制数的基数相比较,如果比所对应的基数大则写1小则写0;(先比较,若大则写1小则写0);
Eg;将十进制数156转换成二进制数为__
先写出二进制的基数;
256.128.64.32.16.8.4.2.1
比较,156比256小比128大所以128所对应的二进制数为1;
再比较:(比较时应先用十进制数减掉前一个二进制基数然后再用所的结果和下一个基数作比较)即,156-128=28;用28和64作比较,依次类推;
所以最后所得结果为10011100。
3.二进制转换成十六进制:
先分组;将二进制从右到左分成四个一组,然后用基数凑即8.4.2.1凑
Eg:101011110001110000001转换成十六进制;
如图;
二进制与十进制十六进制的相互转换unicode
所以101011110001110000001的十六进制数为:15E381
4.十六进制转成二进制:
二进制与十进制十六进制的相互转换unicode
5.十进制转换十六进制
用十进制数除以16取余数再用商除以16直到商比16小,最后依次从后取余数,余数所对应的十六进制位数即为十六进制数;如:
将十进制数13566转换成十六进制数;
1. 13566÷16=847……14;E
2. 847÷16=52……15;F
3. 52÷16=3……4;4
4. 3比16小就不用除下去了,直接写3
所以13566的十六进制数为;34F(15)E(14)
6.十六进制转成十进制
从低位到高位(0到n位)分别用十六进制的数位乘以16的n次方然后再依次相加;有小数时(从左到右依次为1到m位)从小数点往右依次乘以-1到-m次方;
例如:126.398H
整数部分126 百位: 1×16×16 (16的平方)
十位: 2×16 (16的一次方)
个位: 6 (16的零次方)
小数部分398 3×(16×-1)
9×(16×-2)
8×(16×-3)
Eg2:
将十六进制数5ACD3E转成十进制数;
5在第5位;A在第10位;C在第12位;D在第13位;3在第3位;E在第14位;
5165+10164+12163+13162+3*161+14=5950782
所以:十六进制数5ACD3E的十进制数是:5950782">region ConvertUnicodeStringToChinese
//UNICODE字符转为中文 对这个方法做一点改进 使他支持中英混排
public string ConvertUnicodeStringToChinese(string unicodeString)
{
if (string.IsNullOrEmpty(unicodeString))
return string.Empty;
string outStr = unicodeString;
Regex re = new Regex(“\\u[0123456789abcdef]{4}”, RegexOptions.IgnoreCase);
MatchCollection mc = re.Matches(unicodeString);
foreach (Match ma in mc)
{
outStr = outStr.Replace(ma.Value, ConverUnicodeStringToChar(ma.Value).ToString());
}
return outStr;
}
private char ConverUnicodeStringToChar(string str)
{
char outStr = Char.MinValue;
outStr = (char)int.Parse(str.Remove(0, 2), System.Globalization.NumberStyles.HexNumber);
return outStr;
}
#endregion
http://www.cnblogs.com/wangxiaodou/articles/2073249.html
二进制与十进制十六进制的相互转换
二进制由0;1组成
十进制由0;1;2;3;4;5;6;7;8;9组成
十六进制由0;1;2;3;4;5;6;7;8;9;A;B;C;D;E;F组成
1.二进制转十进制;
先写出二进制的基数:2的n(n= 0.1.2.3.4.5.6…..)次方然后再依次从右向左写入二进制,最后用所得二进制为1下的基数相加所得的总和即为二进制所对应的十进制数;
Eg:将二进制数1110011转换为十进制数;
先写出二进制的基数,再写出二进制数;(从左向右写)
128.64.32.16.8.4.2.1
1. 1 . 1 0. 0. 1. 1
然后用二进制为1的数所对应的基数相加,二进制为0的不加。即;
64+32+16+2+1=115
所以1110011所对应的十进制数为;115。
2.十进制转换成二进制:
同样先写出二进制的基数;2的n(n=0.1.2.3.4.5.6…..)然后用十进制数和二进制数的基数相比较,如果比所对应的基数大则写1小则写0;(先比较,若大则写1小则写0);
Eg;将十进制数156转换成二进制数为__
先写出二进制的基数;
256.128.64.32.16.8.4.2.1
比较,156比256小比128大所以128所对应的二进制数为1;
再比较:(比较时应先用十进制数减掉前一个二进制基数然后再用所的结果和下一个基数作比较)即,156-128=28;用28和64作比较,依次类推;
所以最后所得结果为10011100。
3.二进制转换成十六进制:
先分组;将二进制从右到左分成四个一组,然后用基数凑即8.4.2.1凑
Eg:101011110001110000001转换成十六进制;
如图;
二进制与十进制十六进制的相互转换unicode
所以101011110001110000001的十六进制数为:15E381
4.十六进制转成二进制:
二进制与十进制十六进制的相互转换unicode
5.十进制转换十六进制
用十进制数除以16取余数再用商除以16直到商比16小,最后依次从后取余数,余数所对应的十六进制位数即为十六进制数;如:
将十进制数13566转换成十六进制数;
1. 13566÷16=847……14;E
2. 847÷16=52……15;F
3. 52÷16=3……4;4
4. 3比16小就不用除下去了,直接写3
所以13566的十六进制数为;34F(15)E(14)
6.十六进制转成十进制
从低位到高位(0到n位)分别用十六进制的数位乘以16的n次方然后再依次相加;有小数时(从左到右依次为1到m位)从小数点往右依次乘以-1到-m次方;
例如:126.398H
整数部分126 百位: 1×16×16 (16的平方)
十位: 2×16 (16的一次方)
个位: 6 (16的零次方)
小数部分398 3×(16×-1)
9×(16×-2)
8×(16×-3)
Eg2:
将十六进制数5ACD3E转成十进制数;
5在第5位;A在第10位;C在第12位;D在第13位;3在第3位;E在第14位;
5165+10164+12163+13162+3*161+14=5950782
所以:十六进制数5ACD3E的十进制数是:5950782