十进制转二进制-快速算法

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main(int agrc, char *agrv[])
{
	int iInPut = 0;
	while (cin >> iInPut)
	{

		string sBinary;//转换后的二进制存储为字符串,调用了默认构造函数初试化为空串
		int temp = abs(iInPut);
		if (temp == 0)
		{
			//cout.width(11);//以11位的宽度右对齐输出
			cout << "          0-->0\n";
			continue;
		}

		while (temp)
		{
			if (temp & 0x01)
			{
				sBinary += '1';
			}
			else
			{
				sBinary += '0';
			}
			temp >>= 1;//对正数右移,高位补0
		}
		reverse(sBinary.begin(), sBinary.end());
		const char *cOutPut = sBinary.c_str();
		cout.width(11);
		cout << iInPut << (iInPut > 0 ? "-->" : "-->-") << cOutPut << endl;
	}
	return 0;
}

十进制转二进制-快速算法

时间: 2024-10-08 11:13:01

十进制转二进制-快速算法的相关文章

十进制转二进制PHP算法

[ 十进制转二进制 ] 1 function test($var){ 2 3 $func = function($i){ 4 if($i < 2){ 5 return $i; 6 } 7 8 $return['int'] = intval( $i / 2 ); 9 $return['remain'] = $i % 2; 10 11 return $return; 12 }; 13 14 $arr = array(); 15 16 while($var > 1){ 17 $result = $f

帮助你快速懂得心算十进制转二进制。(自创功法,理解就会,不会你砍我)

目录: 1.熟记二进制几个特殊数字. 2.找到二进制的转换规律. 3.转二进制的规则理解. 4.举例消化,一举例你就明白了. ~~---------------------------------------------------------------------------------------------------------------------------------------- 前言:前面看不懂,可以先看举例. -------------------------------

Formiko总结整数十进制转换二进制原理

引子: 为什么十进制转二进制的“辗转相除记录余数倒序输出”的算法是正确的?这个问题陪伴了Formiko半年. 实践: 实践一:把十进制数100转换成二进制数的图   上图和和下图唯一的区别在最后一位上,只是除到0和除到1的区别,但在算法本身的理解上应该不会有本质的区别. 实践二: 十进制数100或许太大,不便于一目了然的验证.试一试十进制数1,2,3. 思考: 以上算法的思路是“对原数反复进行除法得到余数,最后将余数倒序输出”.但是看到如图对十进制数100,1,2,3的操作,都看不出原思路的由来

十进制转二进制

十进制转二进制的递归实现算法: 1 #include <stdio.h> 2 void dectobi(int a); 3 4 int main() 5 { 6 int i; 7 printf("please input a decimical number\n"); 8 scanf("%d",&i); 9 printf("the binary number is:"); 10 dectobi(i); 11 return 0;

十进制与二进制转换

用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

计算机中十进制转二进制的相关技巧

**关于计算机中十进制转二进制的相关技巧** 下面我们用二种方法进行对比: 1. 十进制整数转换为二进制整数 十进制整数转换为二进制整数采用"除2取余,逆序排列"法.具体做法是:用2整除十进制整数,可以得到一个商和余数:再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来. 如: 789=1100010101(二进制) 789/2=394 余1 第10位 394/2=197 余0

三行代码写十进制转二进制

同学c++补考,找我帮忙写十进制转二进制的代码,为了让这同学能记住,所以就想写的简单些,然后没想到居然能这么简单,感觉还不错.直接上代码: void DtoB(int d) { if(d/2) DtoB(d/2); cout<<d%2; } 考虑到有人很懒,喜欢复制就能用的代码,所以下面贴一个带主函数的完整代码好了: #include<iostream> using namespace std; void DtoB(int d) { if(d/2) DtoB(d/2); cout&

mysql5.6.35 二进制快速安装

mysql5.6.35 二进制快速安装 mysql 说明: mysql安装在/data/mysql-5.6.35目录下: 下载 cd /data/ wget  tar -zxf  mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz  mv mysql-5.6.35-linux-glibc2.5-x86_64 /data/mysql-5.6.35 新建mysql用户及设置权限 sudo useradd -s /sbin/nologin -M mysql mkdir 

十进制转换为二进制序列,并输出1的个数,和序列的奇偶序列

★十进制转换为二进制序列,并输出1的个数,和序列的奇偶序列 #include<stdio.h> int main() { int m,i,x,y; char a[32];//int为4个字节长,占32个bit位 int count=0; printf("请输入一个数:\n"); scanf("%d", &m); for (i = 0; i < 32; i++) { if (m%2 == 1)         //统计序列中1的个数 { co