1.十进制转二进制

        /// <summary>
/// 十进制转二进制
/// </summary>
public class Convert10To2
{
/// <summary>
/// 将十进制的16位整型数转换为16位二进制字符串
/// </summary>
/// <param name="i"></param>
/// <returns></returns>
public static bool TryTo2(short i, out string v)
{
try
{
v = Convert.ToString(i, ).PadLeft(, '');
return true;
}
catch (Exception)
{
v = default;
return false;
}
} /// <summary>
/// 将十进制的32位整型数转换为32位二进制字符串
/// </summary>
/// <param name="i"></param>
/// <returns></returns>
public static bool TryTo2(int i, out string v)
{
try
{
v = Convert.ToString(i, ).PadLeft(, '');
return true;
}
catch (Exception)
{
v = default;
return false;
}
} /// <summary>
/// 将十进制的64位整型数转换为64位二进制字符串
/// </summary>
/// <param name="i"></param>
/// <returns></returns>
public static bool TryTo2(long i, out string v)
{
try
{
v = Convert.ToString(i, ).PadLeft(, '');
return true;
}
catch (Exception)
{
v = default;
return false;
}
} /// <summary>
/// 将十进制的32位单精度浮点数转换为32位二进制字符串
/// </summary>
/// <param name="i"></param>
/// <param name="v"></param>
/// <returns></returns>
public static bool TryTo2(float i, out string v)
{
try
{
float j = i;
i = Math.Abs(i);
int i_left = Convert.ToInt32(Math.Floor(i));//获取整数部分
float i_right = i - i_left;//获取小数部分
TryTo2(i_left, out string left);//整数部分转换为二进制
string right = "";
while (i_right != )//小数部分转换为二进制
{
float temp = i_right * ;
right += temp >= ? "" : "";
if (temp == || temp == )
{
break;
}
i_right = temp > ? temp - : temp;
}
string S = j > ? "" : "";//获取符号位的二进制
if (!left.Contains(""))
{
int e = - (right.IndexOf('') + );//获取指数位的十进制
TryTo2(e, out string E);//获取指数位的二进制
string M = right.Substring(right.IndexOf('') + );
if (M.Length > )
{
M = M.Substring(, );
}
else if (M.Length < )
{
M = M.PadRight(, '');
}
v = S + E.Substring(E.Length - ) + M;
}
else
{
int e = left.Length - left.IndexOf('') - + ;//获取指数位的十进制
TryTo2(e, out string E);//获取指数位的二进制
var z = (left.IndexOf('') + );//获取最高正数位
string M = ((z >= left.Length ? "" : left.Substring(z)) + right);//获取尾数
if (M.Length > )
{
M = M.Substring(, );
}
else if (M.Length < )
{
M = M.PadRight(, '');
}
v = S + E.Substring(E.Length - ) + M;
}
return true;
}
catch (Exception)
{
v = default;
return false;
}
}
}

十进制转二进制

2.二进制转十进制

        /// <summary>
/// 二进制转十进制
/// </summary>
public class Convert2To10
{
/// <summary>
/// 将32位二进制字符串转换为十进制的单精度浮点数
/// </summary>
/// <param name="i"></param>
/// <param name="v"></param>
/// <returns></returns>
public static bool TryTo10(string i, out float v)
{
try
{
var s = i.Substring(, );//获取符号位字符串
var e = i.Substring(, );//获取指数位字符串
var m = i.Substring();//获取尾数字符串
TryTo10(s, out int S);//把符号转换成十进制
TryTo10(e, out int E);//获取指数转换成十进制
var m_left = $"1{m.Substring(0, E - 127)}";//获取整数部分二进制字符串
var m_right = m.Substring(E - );//获取小数部分二进制字符串
TryTo10(m_left, out int left);//把整数部分转换为十进制
var right = 0f;
for (int index = ; index < m_right.Length; index++)//把小数部分转换为十进制
{
var temp_value = Convert.ToSingle(m_right[index].ToString());
var temp_index = Convert.ToSingle(Math.Pow(, -(index + )));
right += (temp_value * temp_index);
}
v = left + right;//合并整数部分和小数部分
v = S == ? -v : v;//添加符号
return true;
}
catch
{
v = default;
return false;
}
} /// <summary>
/// 将32位二进制字符串转换为十进制的32位整型数
/// </summary>
/// <param name="i"></param>
/// <param name="v"></param>
/// <returns></returns>
public static bool TryTo10(string i, out int v)
{
try
{
v = Convert.ToInt32(i, );
return true;
}
catch
{
v = default;
return false;
}
}
}

二进制转十进制

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. Spring StopWatch源码

    import java.text.NumberFormat; import java.util.LinkedList; import java.util.List; public class Stop ...

  2. OpenGL ES: (2) OpenGL ES 与 EGL、GLSL的关系

    OpenGL ES 是负责 GPU 工作的,目的是通过 GPU 计算,得到一张图片,这张图片在内存中其实就是一块 buffer,存储有每个点的颜色信息等.而这张图片最终是要显示到屏幕上,所以还需要具体 ...

  3. [转][C#]dll 引用

    本文转自:https://zhidao.baidu.com/question/1176198151354174139.html 首先,对应关系: C++ C#===================== ...

  4. python模块之request模块的理解

    首先还是老生长谈,说说定义和作用,request模块是一个用于访问网络的模块,其实类似的模块还有很多,不在一一在这里解释.这么多的相似的模块为什么都说只有这个好用呢.因为他人性化.如果你学过urlli ...

  5. sql日期比较

    sql 中 datetime日期类型字段比较 mysql 可以直接用大于号,也可以用  between  and SELECT * FROM staff WHERE UPDATE_DATE >= ...

  6. QML登录界面

    import QtQuick 2.9 import QtQuick.Window 2.2 import QtQuick.Controls 2.2 import QtGraphicalEffects 1 ...

  7. LNMP一键环境安装多PHP版本共存的方法

    多PHP版本只支持LNMP模式,LNMPA.LAMP模式下不支持!要使用多PHP先安装多PHP版本,在lnmp1.4源码(lnmp1.3的不行哦)目录下运行:./install.sh mphp 按提示 ...

  8. python登录项目

    简单的django登录项目 1.首先建立工程,建立工程请参照:https://www.cnblogs.com/effortsing/p/10394511.html 2.在Firstdjango工程项目 ...

  9. AWS 存储服务(三)

    目录 AWS S3 业务场景 挑战 解决方案 S3的好处 S3 属性 存储桶 Buckets 对象 Object S3 特性 S3 操作 可用性和持久性 一致性 S3 定价策略 S3高级功能 存储级别 ...

  10. 【c# 学习笔记】构造函数

    构造函数 主要用于创建类的实例对象.当调用构造函数创建一个对象时,构造函数会为对象分配内存空间,并初始化类的成员.构造函数分为实例构造函数和静态构造函数两种. 1.实例构造函数 实例构造函数用于创建和 ...