十进制与二进制转换

用C#代码实现二进制与十进制的互相转换

代码如下:





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

class Program

    {

        static
void Main(string[] args)

        {

            int
mark = 19;

            int
tem = ToErJin(mark);

            Console.WriteLine("转成二进制后:"
+ tem);  // 打印“转成二进制后:10011”

            int
mark2 = 10011;

            int
tem2 = ToShijin(mark2);

            Console.WriteLine("转成十进制后:"
+ tem2);// 打印“转成十进制后:19”

        }

        /// <summary>

        /// 转换为二进制

        /// </summary>

        /// <param name="value"></param>

        /// <returns></returns>

        public
static int ToErJin(int
value)

        {

            int
temp = 0;

            int
shang = 1;

            int
yushu;

            while
(shang != 0)

            {

                shang = (int)value / 2;

                yushu = value % 2;

                value = shang;

                temp += yushu;

                if
(shang != 0)

                {

                    temp = temp * 10;

                }

            }

            //最后将 temp 倒序

            string
tempStr = temp.ToString();

            int
tempLength = tempStr.Length;

            string
resultStr = string.Empty;

            for
(int
i = 0; i < tempLength; i++)

            {

                resultStr = tempStr[i] + resultStr;

            }

            return
int.Parse(resultStr);

        }

        /// <summary>

        /// 转换为十进制(主要算法:个位数 * 2的零次方 + 十位数 * 2的一次方 + 百位数 * 2的二次方 + ...)

        /// </summary>

        /// <param name="value"></param>

        /// <returns></returns>

        public
static int ToShijin2(int
value)

        {

            int
temp = 0;

            int
shang = value;

            int
yushu;

            int
mark = 0;

            while
(shang != 0)

            {

                yushu = shang % 10;

                shang = shang / 10;

                temp += yushu * (int)Math.Pow(2, mark);

                mark++;

            }

            return
temp;

        }

        /// <summary>

        /// 二进制转十进制的另一种方法(主要算法:1110111 = 1 * 2~6 + 1 * 2~5 + 1 * 2~4 + 0 * 2~3 + 1 * 2~2 + 1 * 2~1 + 1 * 2~0)

        /// </summary>

        /// <param name="value"></param>

        /// <returns></returns>

        public
static int ToShijin(int
value)

        {

            string
strValue = value.ToString();

            int
valueLength = strValue.Length;

            int
result = 0;

            for
(int
i = 0; i < valueLength; i++)

            {

                result += int.Parse(strValue[i].ToString()) * (int)Math.Pow(2, valueLength - 1 - i);

            }

            return
result;

        }

    }

十进制与二进制转换,码迷,mamicode.com

时间: 2024-12-28 21:44:42

十进制与二进制转换的相关文章

React十进制和二进制转换的实现和分析

[描述] 模仿官方文档的摄氏度和华氏度的转换,实现十进制和二进制的互换. [实现] [解析] 原文地址:https://www.cnblogs.com/remly/p/10293650.html

python基本数据类型(字节字符十进制十六进制二进制转换)

#公共功能 # 索引:只能取一个元素 # 切片:取多个元素 #len:计算长度 #for name='李露' #utf-8 一个汉字三个字节 for i in name: print(i) bytes_list=bytes(i,encoding='utf-8') #默认输出十六进制 for b in bytes_list: print(b) #循环的时候默认输出十进制 #3.5 for循环的时候,循环的每个元素时字符 #字符->字节 #bytes() #utf-8->3字节 #gbk->

二进制运算-十进制与二进制的转换

在学习JDK源码和JAVA一些开源框架源码的时候经常会碰到位运算,要搞懂位运算就得弄明白二进制和十进制之间的转换 一.十进制转换成二进制 1.正整数转换成二进制 十进制整数转换成二进制就是不停的除以二,直到不足二为止(0或者1),然后记录余数,从下往上排列出来就是二进制的值 举个例子:5和8转换成二进制 5的二进制为101,8的二进制为1000 2.负整数转换成二进制 负整数转换成二进制,首先取得它绝对值的正数的二进制,然后取反(0变1,1变0),然后加1 举个例子:-5的二进制(32位计算机中

十进制转换成二进制以 二进制转换成 8进制和16进制

十进制转换成二进制 举例:752(十进制数) --> 转换成 二进制数 从下往上 读取数据 二进制数为 : 011110000 2.二进制转换成8进制 (开头用 0 表示) 111 -> 表示的十位数 为 7,也是 8进制 每位上 最大的数字 011110000 转换为  8进制 ,从右到左  ,三位 隔开      011-110-000 , 3.二进制转换成16进制(开头用0x表示) 与 二进制转换 大体相同,区别在于 , 在二进制数中,每四位数隔开 ,再分别计算 得到十进制 ,再 进行

二进制转换十进制 算法解析

java里面是有进制间互换现成的方法的: public class 十进制与各进制的相互转换 { public static void main(String[] args){ //java已经实现的机制:十进制转换为二进制 int decimal = 10; System.out.println("十进制数:"+decimal+",转换为二进制:"+Integer.toBinaryString(decimal)); System.out.println("

C++进制转换(十进制转二进制、八进制、随意进制)

十进制转二进制: //十进制转二进制 #include<iostream> using namespace std; void printbinary(const unsigned int val) { for(int i = 16; i >= 0; i--) { if(val & (1 << i)) cout << "1"; else cout << "0"; } } int main() { prin

十进制与二进制之间的自由转换

#include <stdio.h>#include<stdlib.h>int main(){    int Type,a,b[10],i=0,c=0;    printf("请输入转换类型 1:十进制转二进制:2:二进制转十进制;\n");    scanf("%d",&Type);    printf("请输入原数据\n");    scanf("%d",&a);    switch

十进制与二进制,八进制,十六进制的转换

(一)数制       计算机采用的是二进制,因为二进制具有运算简单,易实现且可靠,为逻辑设计提供了有利的途径,节省设备等优点,为了便于描述,又常用八.十六进制作为二进制的缩写.特点: (1)逢n进一,n是每种进位进数制表示一位数所需要的符号数目为基数. 二进制:逢二进一,借一当二 八进制:逢八进一,借一当八 十六进制:逢十六进一,借一当十六 (二)数制转换       不同进位计数制之间的转换原则:不同进位计数制之间的转换是根据两个有理数如相等,则两数的整数和分数部分一定分别一定相等的原则进行

二进制与十进制之间的转换

我们从小学习使用的阿拉伯数字就是十进制的,这大概是因为我们有十根手指.十个脚趾,便于计数吧.而计算机和我们不同,它只有开和关这两种状态,也就是0和1,所以计算机使用二进制会更方便.在十进制里,每一位上的数值都和这个位上特定的量值相关联.比如123这个数,最低位的数值为3,它和这个位的量值即1(10º)相关联:十位数2和10(10¹)相关联:百位数1和100(10²)相关联,整个数的数值就等于(1 * 10² + 2 * 10¹ + 3 * 10º).同理,二进制的数值也是这样计算的,不过它每一位