二进制与十进制十六进制的相互转换…

本文详细介绍了二进制、十进制及十六进制之间的转换方法,包括二进制与十进制、十六进制间的相互转换步骤,并通过实例进行说明。

#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转换成十六进制;

如图;

二进制与十进制十六进制的相互转换 <wbr>unicode

所以101011110001110000001的十六进制数为:15E381

4.十六进制转成二进制:

二进制与十进制十六进制的相互转换 <wbr>unicode

5.十进制转换十六进制

用十进制数除以16取余数再用商除以16直到商比16小,最后依次从后取余数,余数所对应的十六进制位数即为十六进制数;如:

将十进制数13566转换成十六进制数;

  1. 1.              13566÷16=847……14E
  2. 2.              847÷16=52……15F
  3. 3.              52÷16=3……44
  4. 4.              316小就不用除下去了,直接写3

所以13566的十六进制数为;34F15E14

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位;

5*165+10*164+12*163+13*162+3*161+14=5950782

所以:十六进制数5ACD3E的十进制数是:5950782

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值