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

假如给你一个二进制 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恰恰是 二进制的最高位

同样 当我任意给你一个十进制数字  23421 我想让你转换成二进制数字 有什么快捷的方法呢?

我们用 val 来代表这个十进制数字 并且将转换得到的二进制序列 存入str字符串数组中去

 1     while(n)
 2     {
 3         str[cnt++] = (n&1)+‘0‘;
 4                 // str[cnt++] = n%2+‘0‘;
 5         n >>=1;
 6     }
 7     for( int i = cnt-1 ; i>=0 ; i-- )
 8     {
 9         cout << str[i];
10     }

这边可以有2种写法 n&1 与n%2  随便怎么写 前者速度会快一点 但是不要忘记了括号 根据运算符的优先级

还有就是个 输出顺序 是逆序输出的 别搞错了 =-=

感觉 这还是会在比赛中可能蛮有用的

today:

  喜欢就是放肆 但爱就是克制

  我还没读懂这句话

  这个 爱 是指什么?

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

时间: 2024-09-30 12:41:20

二进制与十进制之间蛮好的转换方式的相关文章

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

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

二进制、十进制和十六进制的转换

二进制只使用数字0 和1 ,其中每个数字对应于一位( 二进制位).通常,我们将每4 位或8 位作为一组,分别称它们为半字节(nibble) 和字节. 我们感兴趣的是二进制值对应的十进制值一一十进制以10 为基数,我们从幼儿园起就开始使用 它了.二进制位按从右向左的顺序排列,每向左移动一位,位值就翻一倍. 表2-1 列出了半字节和字节中各位代表的十进制值.别忘了,半字节包含4 位, 字节包含8 位. 这意味着如果某一位的取值为1 ,则计算半字节或字节对应的十进制值时,应将其位值与其他所 有取值为1

[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

二进制与十进制互相转换

二进制如何转十进制,十进制如何转二进制 学计算机的朋友刚开始学习时都要接触进制之间的转换,二进制.十进制.八进制.十六进制等,这个是很枯燥的,转来转去就转蒙圈了,别蒙别蒙,今天咱们一个一个搞定,看看二进制和十进制之间如何相互转换的. 方法 转二进制主要有以下几种 正整数转二进制 负整数转二进制 小数转二进制 正整数转二进制 要点:除2取余,然后倒序排列,高位补零 也就是说,将正的十进制数除以二,得到的商再除以二,依次类推直到商为零或1时为止,然后在旁边标出各步的余数,最后倒着写出来,高位补零就O

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

进制也就是进制位,对于接触过电脑的人来说应该都不陌生,我们常用的进制包括:二进制.八进制.十进制与十六进制,它们之间区别在于数运算时是逢几进一位. 二进制与十进制之间的转换 1 十进制转二进制 方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止. (具体用法如下图) 2 二进制转十进制 方法为:把二进制数按权展开.相加即得十进制数. (具体用法如下图) 二进制与八进制之间的转换 1 二进制转八进制 方法为:3位二进制数按权展开相加

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

一. 十进制与二进制之间的转换 (1)十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数.下面举例: 例:将十进制的168转换为二进制 得出结果 将十进制的168转换为二进制,(10101000)2 分析:第一步:将168除以2,商84,余数为0.  第二步:将商84除以2,商42余数为0. 

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

#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

(转 枫伶忆)二进制 八进制 十进制 十六进制之间转换

什么是二进制? 二进制是计算技术中广泛采用的一种数制.二进制数据是用0和1两个数码来表示的数.它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现.当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的.计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0. 信息的存储单位 位(Bit) :度量数据的最小单位 字节(Byte):最常用的基本单位,一个字节有8位 b7  b6 b5 b4 b3 b2 b1