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

  我们从小学习使用的阿拉伯数字就是十进制的,这大概是因为我们有十根手指、十个脚趾,便于计数吧。而计算机和我们不同,它只有开和关这两种状态,也就是0和1,所以计算机使用二进制会更方便。在十进制里,每一位上的数值都和这个位上特定的量值相关联。比如123这个数,最低位的数值为3,它和这个位的量值即1(10º)相关联;十位数2和10(10¹)相关联;百位数1和100(10²)相关联,整个数的数值就等于(1 * 10² + 2 * 10¹ + 3 * 10º)。同理,二进制的数值也是这样计算的,不过它每一位的量值都是2的倍数。例如二进制数1101,最右边的1与量值1(2º)相关联;往左一位0与量值2(2¹)相关联,以此类推,整个数的数值等于(1 * 2³ + 1 * 2² + 0 * 2¹ + 1 * 2º)= 13,这也就是它的十进制表示,下面说一下十进制和二进制之间具体的转换方法。

  一、十进制转换成二进制算法如下:

  步骤1:将该值除以2,记下余数;

  步骤2:将上一步得到的商继续除以2,记下余数,直至商为0;

  步骤3:商为0时,将余数按所记录的顺序从右至左依次排列,即得到该值的二进制表示。

  de = int(raw_input("Please enter a decimal number!"))  bi = ‘‘  while de != 0:    a = str(de % 2)    bi = a + bi    de = de / 2  print bi

  

  二、二进制转换为十进制方法已经提过,即将每一位上的数值乘以该位的量值,最后把所有的乘积加起来就得到该二进制数的十进制表示了,具体程序如下:

  bi = str(raw_input("Please enter a binary number!"))  de = 0  for i in range(len(bi)):    a = int(bi[i]) * (2 ** (len(bi) - i - 1))    de = de + a  print de

  

时间: 2024-12-25 01:30:05

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

二进制与十进制之间蛮好的转换方式

假如给你一个二进制 1101101010101  问你转换成10进制是多少  反正 我第一想到的是用2的k次方 这样算 其实完全不用 用如下代码 就可-------我们假设以 字符串来接受这个二进制 一般我们也都是这样做的 1 for( int i = 0 ; str[i]!='\0' ; i++ ) 2 { 3 sum = sum*2 + str[i] - '0'; 4 } 我们通过这个*2也达到了 k次方这个效果 因为i =0恰恰是 二进制的最高位 同样 当我任意给你一个十进制数字  234

Python 二进制,十进制,十六进制转换

十六进制 到 十进制 使用 int() 函数 ,第一个参数是字符串 '0Xff' ,第二个参数是说明,这个字符串是几进制的数.  转化的结果是一个十进制数. >>> int('0xf',16) 15 二进制 到 十进制 >>> int('10100111110',2) 1342 八进制 到 十进制 >>> int('17',8) 15 其实可以看到,不管 几进制数 转换成 十进制数 ,都是用 int()  函数 .之后后面的 第二个参数 写清楚 前面字

二进制与十进制口算转换技巧

二进制转换,IP地址十进制转二进制:1 1 //10^02 10 //10^14 1 00 //10^28 10 00 //10^316 1 00 00 //10^4 32 10 00 00 //10^564 1 00 00 00 //10^6128 10 00 00 00 //10^7 1 2 4 .. 128 ,共8个数 168 : 128+(32+8) //10 10 10 00 50 : 32+(16+2) //00 11 00 10 192 : 128+(64) //11 00 00

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

/*编写函数htoi(s),把由十六进制数字组成的字符串(包含可选的请前缀0x或0X)转换为与之等价的 整型值.字符串中允许包含的数字包括:0~9,a~f以及A~F.*/ /*利用ASCII的差值*/ #include<stdio.h> #include<math.h> int htois(char s[]) { int length=0,i=0; double num; while(s[length]!='\0') length++; while(s[i]!='\0')    

3.6 二进制,十进制,十六进制转换

package main import ( "fmt" "strconv" ) const bin = "10111" const hex = "1A" const oct = "12" const dec = "10" const floatNum = 16.123557 func main() { // Converts binary value into hex v, _ := C

[Swift]二进制、十进制、十六进制之间的转换

整数文字可以写成: 一个十进制数,无前缀,Decimal,简写为D 一个二进制数,有0b前缀,Binary,简写为B 一个八进制数,有0o前缀,Octal,简写为O 一个十六进制数,有0x前缀,Hexadecimal,简写为H 1.二进制和十进制之间的转换 十进制转二进制 1 var str = String(31,radix:2) 2 print(str) 3 //Print 11111  二进制转十进制  1 extension String{ 2 func BinaryToDecimal(

js二进制和十进制转换代码

js二进制和十进制转换代码:十进制和二进制的转换是在编码中是时常用到的,下面就是一段这样的代码实例,希望能够给需要的朋友带来帮助.代码实例如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="author" conte

不同进制之间的转换

参考文章地址:http://www.cnblogs.com/o-andy-o/p/3410356.html 一. 二进制与十进制之间的转换     a.二进制转十进制(不分整数和小数从最后一位算起,每一位上的数乘以2的几次方,这个次数由这个数字所在的位置决定,从零位开始,然后相加)         01101011.001 转十进制: 第-3位   1乘2的-3次方=0.125第-2位   0乘2的-2次方=0 第-1位   0乘2的-1次方=0第0位    1乘2的0次方=1第1位    1乘

二进制、八进制、十进制、十六进制之间的转换

  最近复习软考各种进制之间的转换着实让人头疼,今天把常用的几种进制之间的转换问题简单做个总结,希望能够对大家有所帮助.   二进制八进制之间的转换   二进制与八进制之间的关系式每个八进制位对应三个二进制位,详情如下:   八进制:  0    1     2    3     4    5     6    7       二进制:000 001 010 011 100 101 110 111   实例:   27.651(8)  010111.110101001(2)   1001.000