C++ 十进制转换为二进制的实例代码

题目内容:将十进制整数转换成二进制数。

输入描述:输入数据中含有不多于50个的整数n(-231<n<231)。

输出描述:对于每个n,以11位的宽度右对齐输入n值,然后输出“-->”,再然后输出二进制数。每个整数n的输出,独立占一行。

题目分析:将某个数从十进制转为二进制的具体方法是,该数对2取余,结果要么为1要么为0,此为该数对应二进制的末位;然后该数除以二,得到的商再次对2取余,结果为对应二进制的倒数第二位……以此类推,知道除以2的结果为0。

参考代码:

代码如下:

#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
using namespace std;

string s;
int main(int argc,char * argv[])
{
    int n;
    while(cin>>n)
    {
        if(n==0)
        {
                cout<<"          0-->0\n";
                continue;
        }
        s=" ";
        for(int a=n;a;a=a/2)
        {
                s=s+(a%2?'1':'0');
        }
        std::reverse(s.begin(),s.end());
        const char *sss=s.c_str();
        cout.width(11);
        cout<<n<<(n<0?"-->-":"-->")<<sss<<"\n";
    }
    system("pause");
    return 0;
}

效果如图:

(0)

相关推荐

  • C++面试题之进制转换的实例

    C++进制转换的实例 一个面试题,要求输入十进制数,输出十六进制,可以使用printf打印%d,%c,%s来输出,但不能使用 %x 打印. 写了两种算法,还算比较简洁,粘贴在此. // 第一种算法,从低位到高位扫描移位,需要一个数组辅助倒序,一次性输出结果 #include <stdio.h> #define MAX_HEX_NUM 16 #define OUT_DATA_LEN sizeof(int)*2 // 2个16进制数表示1个字节 static char Hex_Char_Table

  • c++实现十进制转换成16进制示例

    c++实现十进制转换成16进制 复制代码 代码如下: //Decimal to hexadecimal number//programming by : Erfan Nasoori//Date of send : 2009/1/11 #include <iostream.h> void main(){ int x,y,i; int d,n=1; int * r; char h[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D

  • C++ 基础编程之十进制转换为任意进制及操作符重载

    C++ 基础编程之十进制转换为任意进制及操作符重载 最近学习C++ 的基础知识,完成十进制转换为任意进制及操作符重载,在网上找的不错的资料,这里记录下, 实例代码: #include<iostream> #include<vector> #include<limits> using namespace std; using std::iterator; ///<summary> ///十进制转换为任意进制,为了熟悉操作符,也加了操作符重载. ///包括自增(

  • C++学习小结之二进制转换

    一.目的:便于计算机表示,稳定性好,符合逻辑运算,真为1,假为0. 二.各进制表示方法: 2进制:0,1 8进制:0-7 16进制:0-9,A,B,C,D,E,F 二.转换方法: 1.各进制转换为10进制: 从我们最了解的10进制入手.每个数都是10n次方相加.从右到左依次为:a*100+b*101+c*102....其结果表示为cba;同理二进制,八进制,16进制只是把10替换为2,8,16. 2.10进制转换2,8,16进制.取余反序排列. 3.8进制转2进制.首先要明白2进制是"逢1进1&

  • 2~62位任意进制转换方法(c++)

    进制转换的符号表为[0-9a-zA-Z],共61个字符,最大可表示62进制. 思路是原进制先转换为10进制,再转换到目标进制. 疑问: 对于负数,有小伙伴说可以直接将符号丢弃,按照整数进行进位转换,最后再将负号补回来,我认为这种做法是不对的. 正确的做法是:考虑好按照16位(short)还是32位(int)抑或64位(long long),先求出二进制补码(这时候就正负数就统一了),将二进制数转换为十进制后在转换为其他进制(如果有小伙伴知道如何直接将二进制转换为任意进制的方法可以留言告诉我,不胜

  • c++10进制转换为任意2-16进制数字的实例

    废话不多说,直接上代码 #include<stdio.h> #include<stdlib.h> #include<iostream> using namespace std; int main() { //十进制转换为若干进制>2,<16 = int num; int n;//2-16之间 int a; int i=0; cin>>num>>n; int s[100]; if(n>=2&&n<<16

  • C++ 十进制转换为二进制的实例代码

    题目内容:将十进制整数转换成二进制数. 输入描述:输入数据中含有不多于50个的整数n(-231<n<231). 输出描述:对于每个n,以11位的宽度右对齐输入n值,然后输出"-->",再然后输出二进制数.每个整数n的输出,独立占一行. 题目分析:将某个数从十进制转为二进制的具体方法是,该数对2取余,结果要么为1要么为0,此为该数对应二进制的末位:然后该数除以二,得到的商再次对2取余,结果为对应二进制的倒数第二位--以此类推,知道除以2的结果为0. 参考代码: 复制代码

  • C语言用栈实现十进制转换为二进制的方法示例

    本文实例讲述了C语言用栈实现十进制转换为二进制的方法.分享给大家供大家参考,具体如下: #include<stdio.h> #include<malloc.h> #include<math.h> #include<string.h> #include "process.h" #define SIZE 100 #define STACKINCREMENT 10 #define OK 1 #define ERROR 0 #define TRU

  • java 将byte中的有效长度转换为String的实例代码

    一般的我们使用byte接收读取到的数据,若数据没有达到byte定义的大小时,我们直接将byte转换为String则会出现乱码的情况,在这种情况下应该基于read的返回值来转换byte,否则将产生乱码的情况, 下面是一个简单的示例: package com.javaio.myinputstream; public class MyConsole { public static void main(String argv[]) throws Exception { System.out.printl

  • 位运算实现十进制转换为二进制

    代码如下: 复制代码 代码如下: #include <iostream>        //将十进制数转化为二进制数,位运算的取位操作  using namespace std;  int main()  {         unsigned short i;         cout << "请输入一个小于65536的正整数" << endl;         cin >> i;         for(int j=15; j >

  • JS将指定的某个字符全部转换为其他字符实例代码

    var str = "pig cat fish.dog horse monkey bear.lion.fox"; 笔者在这里定义了一个字符串 如果使用for循环遍历字符串,内部使用replace函数的话 for (j = 0; j <= str.length; j++) { if (str.charAt(j) == "o") { str.replace("o", "*"); } } 像上面这样 因为replace是有返回

  • 关于PHP中字符串与多进制转换函数的实例代码

    转换函数 /** * [字符串转换为(2,8,16进制)ASCII码] * @param string $str [待处理字符串] * @param boolean $encode [字符串转换为ASCII|ASCII转换为字符串] * @param string $intType [2,8,16进制标示] * @return string byte_str [处理结果] * @author alexander */ function strtoascii($str, $encode=true,

  • JavaScript 栈的详解及实例代码

    JavaScript 栈 栈是一种遵从先进后出(LIFO)原则的有序集合. 新添加或待删除的元素都保存在栈的末尾,称作栈顶,另一端就叫栈底. 在栈里,新元素都靠近栈顶,旧元素都接近栈底 昨天因为有点事没有更新,今天打算给大家讲讲JavaScript实现的数据结构 数据结构与算法是程序语言的灵魂,是解决一切编程问题的基础 以前学C/C++的时候,感觉算法还是非常重要的,但是前端涉及的并不多 不管怎样,作为技术人员,理解一些基本数据结构和算法应该是必须的 而且我们的JavaScript实现数据结构和

  • PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明

    一,十进制(decimal system)转换函数说明 1,十进制转二进制 decbin() 函数,如下实例 echo decbin(12); //输出 1100 echo decbin(26); //输出 11010 decbin (PHP 3, PHP 4, PHP 5) decbin -- 十进制转换为二进制 说明 string decbin ( int number ) 返回一字符串,包含有给定 number 参数的二进制表示.所能转换的最大数值为十进制的 4294967295,其结果为

  • 一篇教程教你学会Python进制转换(十进制转二进制、八进制、十六进制)

    一.导言 导语: 在计算机进行数据交换时,常常会有一个进制转换的过程,我们知道计算机只认0 和 1.在内存系统中,基本基于二进制进行运算的,但是有时候数据过于庞大,为了方便存储管理,计算机会使用十六进制存储数据,但是怎么实现数据转换呢? 我们人类由十根手指头,所以自然就使用十进制啦,每当我们数数字到10之后,于是就重0 开始继续数,所以逢十进一就这么来了. 对于其它进制呢,也是同样的,比如最常见的二进制,也就是逢二进一,慢慢来,依次类推,所以数学的世界是多么的奇妙呀! 今天给大家带来的是使用 P

  • JS字符串与二进制的相互转化实例代码详解

    JS字符串与二进制的相互转化的方法,具体代码如下所示: //字符串转ascii码,用charCodeAt(); //ascii码转字符串,用fromCharCode(); var str = "A"; var code = str.charCodeAt(); var str2 = String.fromCharCode(code); 十进制转二进制 var a = "i"; console.log(a.charCodeAt()); //105 console.log

随机推荐