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. Java-编程规范与代码风格

    阿里巴巴 Java 开发手册 https://github.com/alibaba/p3c https://developer.aliyun.com/special/tech-java 唯品会规范 J ...

  2. HBase-概述

    一种分布式.可扩展.支持海量数据存储的 NoSQL 数据库. 逻辑上,HBase 的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列.但从 HBase 的底层物理存储结构(K-V)来看,HB ...

  3. OpenJudge计算概论-奇数求和

    /*=================================================== 奇数求和 总时间限制: 1000ms 内存限制: 65536kB 描述 计算非负整数 m 到 ...

  4. 《高性能mysql》笔记(第一章,mysql的架构与历史)

    mysql的服务器逻辑架构图如下: 目前工作用的5.5版本,5.5版本开始mysql开始将innoDB作为默认的存储引擎,innoDB的表是基于聚簇索引建立的. mysql的存储引擎锁管理非常重要,在 ...

  5. golang 循环创建闭包 问题排查

    ][]string{ { { "邀请码是什么", "我没有邀请码", "这个邀请码我可以随便填吗", "邀请码可以填他的手机号吗& ...

  6. 【分类算法】决策树(Decision Tree)

    (注:本篇博文是对<统计学习方法>中决策树一章的归纳总结,下列的一些文字和图例均引自此书~) 决策树(decision tree)属于分类/回归方法.其具有可读性.可解释性.分类速度快等优 ...

  7. java中byte数组,二进制binary安装chunk大小读取数据

    int CHUNKED_SIZE = 8000; public void recognizeText(byte[] data) throws InterruptedException, IOExcep ...

  8. Python简单计算数组元素平均值的方法示例

    Python简单计算数组元素平均值的方法示例 本文实例讲述了Python简单计算数组元素平均值的方法.分享给大家供大家参考,具体如下: Python 环境:Python 2.7.12 x64 IDE ...

  9. 第三方框架----FMDB的使用

    以下是SQLite API进行封装的库FMDB的简单使用 : FMDB框架的下载地址 :https://github.com/ccgus/fmdb 代码如下 : ////  ViewControlle ...

  10. ELK之elasticsearch插件导致filebeat没有上传日志至elasticsearch解决办法

    使用filebeat收集nginx发现日志为上传,elasticsearch没有日志,kibana没有展示 查看filebeat日志 日志目录为/var/log/filebeat  下面有多个日志文件 ...