zoukankan      html  css  js  c++  java
  • 十进制数转换为二进制数的两种方法

    下面代码仅供本人复习所用,实用性N低,各位飘过吧~~哈哈:>

    //
    // 十进制转二进制. 
    // 
    
    #include <cstdlib>
    #include <iostream>
    #include <vector>
    
    //
    // 使用 unsigned long long 类型数值来表示二进制数,
    // 由于这样表示的二进制数位数有限,顾输入参数为 unsigned short 类型. 
    //
    unsigned long long toBinary(unsigned short decimal) 
    {
    	long long binary = 0;
    	long long carry = 1; 
    	while (0 < decimal) {
    		binary += decimal % 2 ? carry : 0;
    		carry *= 10;
    		decimal /= 2;
    	}
    	return binary; 
    }
    
    //
    // 使用向量保存二进制数字符串. 
    //
    void toBinary_vector(unsigned long decimal, std::vector<char> &binary)
    {
    	while (0 < decimal) {
    		binary.push_back(decimal % 2 + '0');
    		decimal /= 2;
    	}
    }
    
    //
    // 测试. 
    // 
    int main(void)
    {
    	std::cout << "Input decimal number: "; 
    	
    	unsigned short decimal;
    	while (!(std::cin >> decimal)) {
    		std::cin.sync();
    		std::cin.clear();
    		std::cout << "Input wrong, please input again: "; 
    	}
    	std::cout << "Binary: " << toBinary(decimal) << std::endl; 
    	
    	std::vector<char> binary;
    	
    	toBinary_vector(decimal, binary);
    	std::vector<char>::iterator beg = binary.begin();
    	std::vector<char>::iterator end = binary.end();
    	std::cout << "Binary: ";
    	while (beg != end--) {
    		std::cout << *end;
    	}
    	std::cout << std::endl; 
     
    	return EXIT_SUCCESS;
    }
    
  • 相关阅读:
    HDU
    QDUoj GZS的三角形 棋盘里的数学 思维+杨辉三角
    HDU
    HDU
    CodeForces
    POJ
    QDUOJ 东北大炸弹 宝岛地图-枚举+数组记录+前缀和
    HDU
    QDUOJ 分辣条-01背包恰好装满情况
    HDU
  • 原文地址:https://www.cnblogs.com/wxxweb/p/2066143.html
Copyright © 2011-2022 走看看