1.十进制转二进制

  1. /// <summary>
  2. /// 十进制转二进制
  3. /// </summary>
  4. public class Convert10To2
  5. {
  6. /// <summary>
  7. /// 将十进制的16位整型数转换为16位二进制字符串
  8. /// </summary>
  9. /// <param name="i"></param>
  10. /// <returns></returns>
  11. public static bool TryTo2(short i, out string v)
  12. {
  13. try
  14. {
  15. v = Convert.ToString(i, ).PadLeft(, '');
  16. return true;
  17. }
  18. catch (Exception)
  19. {
  20. v = default;
  21. return false;
  22. }
  23. }
  24.  
  25. /// <summary>
  26. /// 将十进制的32位整型数转换为32位二进制字符串
  27. /// </summary>
  28. /// <param name="i"></param>
  29. /// <returns></returns>
  30. public static bool TryTo2(int i, out string v)
  31. {
  32. try
  33. {
  34. v = Convert.ToString(i, ).PadLeft(, '');
  35. return true;
  36. }
  37. catch (Exception)
  38. {
  39. v = default;
  40. return false;
  41. }
  42. }
  43.  
  44. /// <summary>
  45. /// 将十进制的64位整型数转换为64位二进制字符串
  46. /// </summary>
  47. /// <param name="i"></param>
  48. /// <returns></returns>
  49. public static bool TryTo2(long i, out string v)
  50. {
  51. try
  52. {
  53. v = Convert.ToString(i, ).PadLeft(, '');
  54. return true;
  55. }
  56. catch (Exception)
  57. {
  58. v = default;
  59. return false;
  60. }
  61. }
  62.  
  63. /// <summary>
  64. /// 将十进制的32位单精度浮点数转换为32位二进制字符串
  65. /// </summary>
  66. /// <param name="i"></param>
  67. /// <param name="v"></param>
  68. /// <returns></returns>
  69. public static bool TryTo2(float i, out string v)
  70. {
  71. try
  72. {
  73. float j = i;
  74. i = Math.Abs(i);
  75. int i_left = Convert.ToInt32(Math.Floor(i));//获取整数部分
  76. float i_right = i - i_left;//获取小数部分
  77. TryTo2(i_left, out string left);//整数部分转换为二进制
  78. string right = "";
  79. while (i_right != )//小数部分转换为二进制
  80. {
  81. float temp = i_right * ;
  82. right += temp >= ? "" : "";
  83. if (temp == || temp == )
  84. {
  85. break;
  86. }
  87. i_right = temp > ? temp - : temp;
  88. }
  89. string S = j > ? "" : "";//获取符号位的二进制
  90. if (!left.Contains(""))
  91. {
  92. int e = - (right.IndexOf('') + );//获取指数位的十进制
  93. TryTo2(e, out string E);//获取指数位的二进制
  94. string M = right.Substring(right.IndexOf('') + );
  95. if (M.Length > )
  96. {
  97. M = M.Substring(, );
  98. }
  99. else if (M.Length < )
  100. {
  101. M = M.PadRight(, '');
  102. }
  103. v = S + E.Substring(E.Length - ) + M;
  104. }
  105. else
  106. {
  107. int e = left.Length - left.IndexOf('') - + ;//获取指数位的十进制
  108. TryTo2(e, out string E);//获取指数位的二进制
  109. var z = (left.IndexOf('') + );//获取最高正数位
  110. string M = ((z >= left.Length ? "" : left.Substring(z)) + right);//获取尾数
  111. if (M.Length > )
  112. {
  113. M = M.Substring(, );
  114. }
  115. else if (M.Length < )
  116. {
  117. M = M.PadRight(, '');
  118. }
  119. v = S + E.Substring(E.Length - ) + M;
  120. }
  121. return true;
  122. }
  123. catch (Exception)
  124. {
  125. v = default;
  126. return false;
  127. }
  128. }
  129. }

十进制转二进制

2.二进制转十进制

  1. /// <summary>
  2. /// 二进制转十进制
  3. /// </summary>
  4. public class Convert2To10
  5. {
  6. /// <summary>
  7. /// 将32位二进制字符串转换为十进制的单精度浮点数
  8. /// </summary>
  9. /// <param name="i"></param>
  10. /// <param name="v"></param>
  11. /// <returns></returns>
  12. public static bool TryTo10(string i, out float v)
  13. {
  14. try
  15. {
  16. var s = i.Substring(, );//获取符号位字符串
  17. var e = i.Substring(, );//获取指数位字符串
  18. var m = i.Substring();//获取尾数字符串
  19. TryTo10(s, out int S);//把符号转换成十进制
  20. TryTo10(e, out int E);//获取指数转换成十进制
  21. var m_left = $"1{m.Substring(0, E - 127)}";//获取整数部分二进制字符串
  22. var m_right = m.Substring(E - );//获取小数部分二进制字符串
  23. TryTo10(m_left, out int left);//把整数部分转换为十进制
  24. var right = 0f;
  25. for (int index = ; index < m_right.Length; index++)//把小数部分转换为十进制
  26. {
  27. var temp_value = Convert.ToSingle(m_right[index].ToString());
  28. var temp_index = Convert.ToSingle(Math.Pow(, -(index + )));
  29. right += (temp_value * temp_index);
  30. }
  31. v = left + right;//合并整数部分和小数部分
  32. v = S == ? -v : v;//添加符号
  33. return true;
  34. }
  35. catch
  36. {
  37. v = default;
  38. return false;
  39. }
  40. }
  41.  
  42. /// <summary>
  43. /// 将32位二进制字符串转换为十进制的32位整型数
  44. /// </summary>
  45. /// <param name="i"></param>
  46. /// <param name="v"></param>
  47. /// <returns></returns>
  48. public static bool TryTo10(string i, out int v)
  49. {
  50. try
  51. {
  52. v = Convert.ToInt32(i, );
  53. return true;
  54. }
  55. catch
  56. {
  57. v = default;
  58. return false;
  59. }
  60. }
  61. }

二进制转十进制

C# 整型数和浮点型数的进制转换的更多相关文章

  1. Linux命令之bc - 浮点计算器、进制转换

    用途说明 Bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以很方便的进行浮点运算,当然整数运算也不再话下.手册页上说bc是An arbitrary precision calcu ...

  2. python27期day03:字符串详解:整型、可变数据类型和不可变数据类型、进制转换、索引、切片、步长、字符串方法、进制转换、作业题。

    1.%s: a = "我是新力,我喜欢:%s,我钟爱:%s"b = a%("开车","唱跳rap")print(b)2.整型: 整数在Pyt ...

  3. Java 基础入门随笔(2) JavaSE版——关键字、进制转换、类型转换

    1.Java语言-关键字 关键字:被java语言赋予了特殊含义的词,特点是所有的字母都为小写. java涉及到的关键字整理: 用于定义数据类型的关键字 class interface byte sho ...

  4. php进制转换函数

    1 十进制(decimal system)转换函数 ① 十进制转二进制 string  decbin(int number). 参数为一个十进制整型数字,不是整型数字会自动转为整型数字,如'3'转为3 ...

  5. Java:进制转换

    进制转换是常常需要的一种数据处理,在java中的一些类中封装了具有转换功能的方法,这个不做介绍.其实,进制之间的转化是通过先位异或&,再位移动>>>的方式实现的. 例如,对于 ...

  6. 九度OJ 1026:又一版 A+B (进制转换)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:11412 解决:3086 题目描述: 输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < ...

  7. 004-Java进制转换

    整型数据共有4中进制形式 二进制(binary):以0b或者0B开头 十进制(decimal) 八进制(octal):以数字0开头 十六进制(hex):以0x或者0X开头 二进制数据包含原码反码和补码 ...

  8. Java基础复习之一篇:关健字,标识符,注释,常量,进制转换,变量,数据类型,数据类型转换

    1.关健字 1.1.被Java语言赋予特定意义的单词(如:class,interface,public ,static) 1.2.全部是小写 1.3.注意事项(goto和const作为关健字保留起来) ...

  9. JavaSE学习(二):进制转换—数据类型转换—Java运算符

    一.进制转换 1.1 其他进制转十进制(以十六进制为例): 十六进制范围:0-9, A-F对应数字10-15 2A7E(16)  =  14*16(0) +7*16(1) + 10*16(2)  + ...

  10. PHP开发——进制转换

    常用进制 l  10进制:有10个基本数,分别为0.1.2.3.4.5.6.7.8.9,运算规则”逢10进1”: l  8进制:有8个基本数,分别为0.1.2.3.4.5.6.7,运算规则”逢8进1” ...

随机推荐

  1. Cookie的使用(js-cookie插件)

    js-cookie 官方文档 里面就详细的介绍了es5怎么引用,以下是ES6以上的用户 一.安装 npm install js-cookie --save 二.引用 import Cookies fr ...

  2. 解读typescript中 super关键字的用法

    解读typescript中 super关键字的用法 传统的js,使用prototype实现父.子类继承.如果父.子类有同名的方法,子类去调用父类的同名方法需要用 “父类.prototype.metho ...

  3. ISO/IEC 9899:2011 条款6.4.2——标识符

    6.4.2 标识符 6.4.2.1 通用 语法 1.identifier: identifier-nodigit identifier    identifier-nondigit identifie ...

  4. vue+php接口

    php: <?php header('Access-Control-Allow-Origin:*'); $date = $_POST['data'];$cars=array("Volv ...

  5. osg define shape(create box)

    #ifdef _WIN32 #include <Windows.h> #endif // _WIN32 #include <osgViewer/Viewer> #include ...

  6. Jsoup-简单爬取知乎推荐页面(附:get_agent())

    总览 今天我们就来小用一下Jsoup,从一个整体的角度来看一看爬虫 一个基本的爬虫框架包括: [x] 解析网页 [x] 失败重试 [x] 抓取内容保存至本地 [x] 多线程抓取 *** 分模块讲解 将 ...

  7. (十一)Centos之帮助命令

    帮助命令man  (manual) 比如我们可以看下man命令的解释 [root@localhost ~]# man man MAN(1)                               ...

  8. (十三)static关键字

    --摘自孤傲苍狼博客 一.static关键字

  9. laravel php门面模式

    门面模式   理解3个概念: 1)Container的概念,laravel所有的服务都注册在container里面,至于如何注册,就是使用service provider   2)service pr ...

  10. Flutter 踩坑之build函数返回了null

    今天遇到一个bug,内容都正常显示没问题,但是控制台里报错,如图: 翻译了下,说是函数不能返回空值,搜索了下,网上相同问题的是少写了个return,我检查了下也没发现少return的,后来突然发现if ...