精华内容
下载资源
问答
  • 复习栈的时候,碰巧做到这题,比较简单 ## 思想 就是当该数不为0时,不断对2取余,将余数都存入栈中,.../*十进制转二进制*/ void transfer(int N) { int data[maxSize]; int top=-1; int a; int result=0; w

    复习栈的时候,碰巧做到这题,比较简单

        ## 思想
        就是当该数不为0时,不断对2取余,将余数都存入栈中,最后再一次取出进行了。
    
    
    ```cpp
    #include<bits/stdc++.h>
    using namespace std;
    
    #define maxSize 20
    
    /*十进制转二进制*/
    
    void transfer(int N)
    {
       int data[maxSize];
       int top=-1;
       int a;
       int result=0;
       while(N!=0)
       {
         a=N%2;
         data[++top]=a;
         N=N/2;
        }	
        cout<<"Result: "<<endl;
       /* while(top!=-1)
        {
        	cout<<data[top--];
    	}
    	此输出为我的输出方法,不太精确。 
    	*/
    	while(top!=-1)
    	{
    		a=data[top--];
    		result=result*10+a;
    	 } 
    	 cout<<result;
    } 
    
    int main()
    {
       int num;
       cout<<"Input Data:"<<endl;
       cin>>num;
       transfer(num); 
       return 0; 
    } 
    
    ![就是这样](https://img-blog.csdnimg.cn/20200624215024148.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjA1NjU2,size_16,color_FFFFFF,t_70)
    
    展开全文
  • 二进制十进制转换史上牛逼算法!!

    万次阅读 多人点赞 2020-07-27 11:34:05
    十进制转二进制 相信学过计算机的同学一定对二进制不陌生,计算机底层的通讯就是二进制嘛!二进制由0和1组成,那么怎么快速的对一个十进制数转换成二进制数呢? 古老的方法大家还记得怎么转换吗?比如35这个十进制...

    十进制转二进制

    相信学过计算机的同学一定对二进制不陌生,计算机底层的通讯就是二进制嘛!二进制由0和1组成,那么怎么快速的对一个十进制数转换成二进制数呢?

    最古老的方法大家还记得怎么转换吗?比如35这个十进制数?

    将这个数除以2,等于17余1,然后将17再除以2,等于8余1…直到不能再被2整除,然后将余数从后往前的顺序写出来就是二进制数100011。

    这个是我们上初中时候老师教的,但是太麻烦了,下面我教大家一种新的算法:

    学习这个新算法的时候我们首先要了解下 2 n 2^n 2n问题:

    2 8 2^8 28 2 7 2^7 27 2 6 2^6 26 2 5 2^5 25 2 4 2^4 24 2 3 2^3 23 2 2 2^2 22 2 1 2^1 21 2 0 2^0 20

    …256、128、64、32、16、8、4、2、1

    第一步,我们先把 2 n 2^n 2n倒着写出来,写多少呢?根据你要算的这个十进制数的大小,比如35,那你就从32开始往前写就行了:

    32、16、8、4、2、1

    从上面这些数里,我们想算十进制的35,它等于32+2+1,那我就在32、2、1下面标1,其余的标0:

    通过上图,二进制就是100011。简单不?如果你看懂了,你就试试其他的数吧。

    二进制转十进制

    十进制转二进制我们刚才学会了,那么二进制怎么转十进制呢?是不是有点懵?

    假如有一个二进制数100011,怎么转换呢,非常简单!还是先把 2 n 2^n 2n写下来,写多少?根据二进制的位数,100011是6位,那我就从后往前数6位写下来:

    然后把这个二进制数从前往后依次写在十进制数上:

    最后把上标为1的加在一起:

    32 + 2 + 1 = 35

    是不是很简单?只要你记住这几个数( 2 n 2^n 2n)你就可以快速的十进制二进制互转。那有的同学问了,如果十进制数是999999999转换二进制是多少?呵呵哒!这么大的数你用计算器!你知道怎么算就行了,有计算器呢

    展开全文
  • Java十进制转二进制算法 一、编程思路 可以运用简单的数学的计算的方法。如下 这张图大家应该都不陌生,10(例子中的10)一直除以2,余数写在右面那一列,如果被整除右面写0,如果没有别整除,写他的余数,这样...

    Java十进制转二进制简单算法

    一、编程思路

    可以运用简单的数学的计算的方法。如下
    在这里插入图片描述
    这张图大家应该都不陌生,10(例子中的10)一直除以2,余数写在右面那一列,如果被整除右面写0,如果没有别整除,写他的余数,这样反反复复的除以2。除到除不了了为止,最后把余数倒着写出来,这就是高中老师教给我们的进制转换算法
    所以从这个例子可以看出的条件:
    1.需要我们(用户)从键盘获取一个十进制的数(用到Scanner扫描器)
    2.需要一直除以二(用到循环while或for)。
    3.我们最后的结果只要余数,所以你们会想到%号,可是大家别忘了,除完的结果还要继续除,所以还要用到/号。
    4.他的结果也很特别需要倒着输出。(用到数组来储存,然后在倒着输出)。

    二、导入Scanner

    在这里插入图片描述

    三、代码

    代码如下:

    	Scanner sc=new Scanner(System.in);//创建一个扫描器对象
    	int a;//创建一个变量a
    	int b[] = new int[32];//创建一个容量为32的一个数组;
    	int count = 0;//创建一个数组计数器
    	System.out.println("请输入一个十进制数:");//提示用户操作
    	a = sc.nextInt();//把扫描器输入的十进制值赋给a
    	while (a > 0) {
    	//因为上面我们说了二进制需要我们倒着写,所以干脆就把第一个余数存到数组最后一位
    		b[31 - count] = a % 2;
    		//上面算的是余数,a/=2是为了算下次a的值
    		a /= 2;
    		count++;//数组计数器
    	}
    	System.out.print("转换二进制为:")
    	for (int i = 0; i < b.length; i++) {
    		System.out.print(b[i]);//因为上面是倒着输入了,所以我们只需要用for正在输出就行了
    		if ((i + 1) % 8 == 0) {
    			System.out.print("|");//为了美观创建一个分界线
    		}
    		}
    

    结果:

    在这里插入图片描述

    #结论
    1.需要注意光用一个/或%都是不行的,并且在这个代码的循环语句里的逻辑必须是先算取余,再算除,否则就会落下第一余数。
    2.我刚采用的是倒着把余数往数组里输入,正着输出结果,当然也可以正着输入余数,倒着输出结果。

    展开全文
  • 十进制转二进制 思想 首先,我们需要知道十进制转换为二进制的手算算法最简单的就是(10)===》(1010);所以,基本的思想是就是利用%运算,得到的余数,存入栈中来,就可以得到而二进制的数。 实现 void sb(int s,...

    十进制转二进制

    思想

    首先,我们需要知道十进制转换为二进制的手算算法。最简单的就是(10)===》(1010);所以,基本的思想是就是利用%运算,得到的余数,存入栈中来,就可以得到而二进制的数。

    实现

    void sb(int s,stack &t)
    {
        int temp=0;
        while(s!=0)
        {
            temp=s%2; //使用取模操作的得到余数
            bool m=push(t,temp);//将余数入栈
            s=s/2;//改变输入的数。
        }
    }
    

    收获

    学习了一会儿栈的基本操作,这次使用的是顺序栈,再次可以使用链栈实现。

    源码地址

    展开全文
  • 在上面的图中很轻易的可以看出这四种进制数中数字元素的区别,并且除了我们常用的十进制数外,其他三种进制都有便于区分的“前缀”。 2.二进制十进制间的转换 上图中我们假定了一个四位的二进制数–1001,我们...
  • 十进制转二进制的两种方法

    千次阅读 2021-07-17 11:17:59
    、使用步骤1.引入库2.读入数据总结前言一、pandas是什么?、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,...
  • 二进制转十进制计算方法

    万次阅读 2018-11-22 12:28:44
    口诀: 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 ........ 11111111 (2) 从右往左数平方 0开始 =1x20+1x21+1x22+1x23+1x24+1x...
  • 十进制转二进制算法

    千次阅读 2016-04-21 13:25:41
    比如我要转换的10进制数为:156 156依次除于2,能整除的记录0,不能整除的记录1 除得的结果取证 156/2=78 标记 0 78/2=39 标记 0 39/2=取整(19.5) 标记 1 19/2=取整(9.5) 标记 1 9/2=取整(4.5) 标记 1 ...
  • 1.二进制转十进制。 **方法一:**二进制转为十进制要从右到左用二进制的每个数去乘以2的相应次方(次方从0开始),再将其每个数进行相加。 例如:1101转十进制:(1乘2的0次方)+(0乘2的1次方)+(1乘2的2次方)+(1...
  • 实现效果如图: 程序核心思想:将一位十进制整数进入...//声明转换为二进制的函数 int main(void) { int number; printf("请输入一位十进制数字:\n"); scanf("%d",&number); Change(number); printf("\n")
  • 前言:接触计算机的同学学习基础课程时,不免会碰到十进制转二进制 / 八进制 / 十六进制这种问题。常见的方法有“除以2/8/16看余数”。本文在介绍方法的前提上,对其数学原理进行...总之,二进制转十进制简单。这...
  • #include int main(void) { int n; long long int s,i; while(scanf("%d",&n)!=EOF){ i=1;...//最后一次除取余 s+=n/2*10*i;//加上最后的商 printf("%lld\n",s); } return 0; } 加油!!
  • 十进制转为二进制简单方法

    千次阅读 2019-03-21 17:02:27
    可采用与运算与位运算(&和<<) (x&1)==(x%2) 例如 4&1 = 0(取数的最低位) 此后要用到位运算 x >> 1(往右移一位, 最低位不断更新) 但要注意 若要输出正序输出即可 ...
  • Qt十六进制转十进制转ascii码,最近用的比较多,所以将它写成了内联函数 看代码: //返回16进制数的ascii码值 inline int ServeWidget::changefromHex_to_ascii(QString str) { QString str_hex = str; //获取十六...
  • 快速计算十进制转二进制的方式

    千次阅读 2020-08-05 14:45:23
    在计算机中一切数据都是用0和1来表示的,我们常规计算二进制的方式是把某个数字除以2能除尽则是0,除不尽则取1然后接着除,最后将取出的0和1向前排序就是最终的二进制数。这种方式相当费时费力还容易出错,其实找到...
  • 十进制数转化为二进制数的两种方法

    万次阅读 多人点赞 2020-12-29 21:14:52
    如果我们要把十进制的150转化为二进制数,可以使用下面两种方法: 第一种方法:表格法 这种方法的核心思想就是用二进制的各位来“拼凑”出我们的十进制数。 我们先把二进制各位的位权列在表格里面。(我们如何...
  • 二进制转十进制快速方法

    千次阅读 2020-11-17 13:39:30
    方式一; 00000001 1 00000010 2 00000100 4 00001000 8 00010000 16 00100000 32 01000000 64 10000000 128 ...2.第种: 00000001 1 00000011 3 00000111 7 00001111 15 00011111 31 00111111 63 01111111
  • 题目看起来很简单,我们立马能想到的办法是进行 / % 输出对应结果。 可能很快写出这样的错误代码: 注意A的ascial 是65 小写97 ,此处我们是从64开始添加的。 string numberToSystem26Str(int n) { string s = ...
  • C语言里,将十进制转为二进制,实现方法较为简单,例如如下循环 while(1) { yushu=x%2; x/=2; y+=yushup; p=10; if(x&lt;2) { y+=xp; break; } 不断取余数,每次取完余数将原本的数据除以2得到新数据,用y值记录...
  • #将10进制转为x进制 def change10_x ( n , x ) : string = '' while n != 0 : m = n % x string += str ( m ) n = int ( n / x ) return string [ : : - 1 ]
  • 十进制转二进制思想以及延伸

    千次阅读 2016-06-15 12:49:26
    说起十进制转为二进制,我想大家对它的算法并不陌生。 它在数学中的主要思想就是:用这个要转化的数不停的除2取余,并且用商来重复之前的操作,直至商为0; 那么,我们就可以根据这个思想来写出我们的C程序。 ...
  • 十进制转为二进制的两种方法

    千次阅读 2021-05-31 22:15:17
    [1] 二进制系统是电子计算机的基本语言,真正的电脑程序员应了解如何将数字从十进制转换为二进制。下面我们将介绍几个简单的转换方法 方法1:余数短除法除以二1、明确问题。举个例子,我们现在是要将一个十进制数字...
  • 十进制转二进制 方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。 简便方法为:将常用的2的多少次方列出来再把对应的数写下来列如:...
  • 十进制转化为八进制的算法Converting a number from Decimal to Octal is almost similar to converting Decimal into Binary, although just one difference is that unlike Binary conversion, here in an ...
  • 一个简单二进制转为十进制,包括有符号位和无符号位的两种转换方式。
  • 十进制转二进制图 0 0 1 1 2 10 3 11 4 100 5 101 6 110 7 111 8 1000 9 1001 …… …… 其实蛮简单,数字长了而已。 切入正题 今天我们要将十进制...
  • 十进制转二进制数的方法总结 本人正常的一个一个除很容易出错, 所以用减法的方式,并对普通减法的方式进行了改进 普通减法:从小到大列出小于该数的2的倍数,然后用该数依次减去2的倍数,直到减到0,中间的被减数...
  • 二进制、八进制、十进制、十六进制关系及转换

    万次阅读 多人点赞 2019-02-21 21:20:22
    二进制,八进制,十进制,十六进制之间的关系是什么?浮点数是什么回事? 本文内容参考自王达老师的《深入理解计算机网络》一书&amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;中国水利水电出版社&amp;amp;amp;amp...
  • 1、二进制转换为十进制:  如果按照传统的方法,算2的乘方与二进制每一位的积,这样容易理解,但是在编程过程中,求2的乘法用到的pow函数是一个double类型的函数,而我们经常用到的是int类型的数,在处理数据类型...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 74,552
精华内容 29,820
关键字:

十进制转二进制最简单的算法