C#控制台基础 无符号二进制小数转换为十进制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#控制台基础 无符号二进制小数转换为十进制相关的知识,希望对你有一定的参考价值。

镇场诗:
———大梦谁觉,水月中建博客。百千磨难,才知世事无常。
———今持佛语,技术无量愿学。愿尽所学,铸一良心博客。
——————————————————————————————————————————

1 code

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace ConsoleApplication15
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             Console.WriteLine("your turn:");
14             string value = Console.ReadLine();
15 
16             //分离字符串,以小数点为界限
17             string[] values = value.Split(new char[] { . }, StringSplitOptions.RemoveEmptyEntries);
18 
19             //存储小数部分的字符串
20             string decimalsPart = values[1];
21             //存储整数部分的字符串
22             string integerPart = values[0];
23 
24             //二进制小数部分出来的10进制数字一定是double类型的
25             double sumOfDecimalsPart = 0.0;
26             for (int i = 0; i < decimalsPart.Length; i++)
27             {
28                 //decimalsPart[i]是char类型,所以要加一个tostring
29                  //在算法设计的初级阶段,不要写出一个有多个变量的长式子,
30                 //要把式子的每个变量都用单独命名,然后调试的时候可以检测到是哪一个变量出了问题
31                 //int itemp = Convert.ToInt32(decimalsPart[i].ToString());
32 
33                 sumOfDecimalsPart += Convert.ToDouble(Convert.ToInt32(decimalsPart[i].ToString()) * Math.Pow(2, -(i+1)));
34             }
35 
36 
37             int sumOfintegerPart = 0;
38             for (int i = 0; i < integerPart.Length; i++)
39             {
40                 //decimalsPart[i]是char类型,所以要加一个tostring
41                 //在算法设计的初级阶段,不要写出一个有多个变量的长式子,
42                 //要把式子的每个变量都用单独命名,然后调试的时候可以检测到是哪一个变量出了问题
43                 //int itemp = Convert.ToInt32(decimalsPart[i].ToString());
44 
45                 sumOfintegerPart += Convert.ToInt32(Convert.ToInt32(integerPart[i].ToString()) * Math.Pow(2, i));
46             }
47 
48             Console.Write("decimalsPart:");
49             Console.WriteLine(decimalsPart);
50 
51             Console.Write("sumOfDecimalsPart:");
52             Console.WriteLine(sumOfDecimalsPart);
53 
54             Console.Write("integerPart:");
55             Console.WriteLine(integerPart);
56 
57             Console.Write("sumOfintegerPart:");
58             Console.WriteLine(sumOfintegerPart);
59 
60             Console.Write("result:");
61             //                                 这里实现的是整数部分与小数部分的拼接
62             //无符号二进制小数 111.101  对应 7.625,
63             //sumOfintegerPart  7        ;sumOfDecimalsPart  0.625 需要去除小数点前面的0
64             Console.WriteLine(sumOfintegerPart+sumOfDecimalsPart.ToString().Substring(1));
65             Console.ReadKey();
66         }
67     }
68 }

 

2 show

技术分享

 

 

 

 

——————————————————————————————————————————
博文的精髓,在技术部分,更在镇场一诗。
C#是优秀的语言,值得努力学习。
如果博文的内容有可以改进的地方,甚至有错误的地方,请留下评论,我一定努力改正,争取铸成一个良心博客。
注:此文仅作为科研学习,如果我无意中侵犯了您的权益,请务必及时告知,我会做出改正。








以上是关于C#控制台基础 无符号二进制小数转换为十进制的主要内容,如果未能解决你的问题,请参考以下文章

C#控制台基础 无符号十六进制小数转换为十进制

字符串格式说明

将十进制转换为小数点后两个零的字符串,和逗号? C# [重复]

C#Winform基础 无符号二进制数(整数)转换为十进制数

C#Winform基础 无符号二进制数(整数)转换为八进制数

C#Winform基础 八进制数转换为十进制数(无符号,整数,正数)