10进制转二进制字符串输出

import java.util.Scanner;

/**
 * Created by longforus on 9:10 PM 5/9/2016 .
 * IDEA-Test .
 * 输入10进制 输出二进制字符串   先计算该数包含最大的2次方结果  每减去一个该数  该位二进制
 * 就记1  不够减就记0 a减完以后补全0
 */
public class Chapter4_37 {
    public static void main (String[] args) {
        System.out.println ("Enter a Integer :");
        Scanner in = new Scanner (System.in);
        int a = in.nextInt ();
        //System.out.println (Integer.toBinaryString (a));//在java中已有现成的方法实现
        int i = 0;
        while (Math.pow (2, i) <= a) {//检测最大到2的多少次方 需要<=a 而不是<a 否则a==2^i 会出错
            i++;
        }
        i--;//减小i到2^i<=a 的范围内
        String binaryString = "";
        while (i > =0) {
            if (a - Math.pow (2, i) >= 0) {//每减去一个2^i 就记1
                a -= Math.pow (2, i);
                binaryString += 1;
            } else//不够减就记0
                binaryString += 0;
            i--;
            if (a == 0) {//a减完后补全剩余的i+1个0 (包含2^0 ) 然后跳出循环  再计算已经没有意义
                for (int j = 0; j <= i; j++) {
                    binaryString += 0;
                }
                break;
            }
        }
        System.out.println (binaryString);
    }
}

时间: 2024-10-07 14:19:10

10进制转二进制字符串输出的相关文章

c++ bitset 10进制转二进制

#include <bitset> using namespace std; void main() { int a; cin>>a; cout<<bitset<8>(a)<<endl; }

C#实现10进制转2进制

这几天在复习计算机原理,看到二进制忽然想到二进制转10进制的公式,然后转念一想10进制转二进制的公式好像没印象,那索性自己写出来. 结果学渣的我发现,并不能写出来!什么数列,对数,xx函数忘得一干二净,而且需要有需要判断的地方,于是崩溃了,以前代数题并没写过条件啊~ 索性用C#代码搞出来(虽然在C#里有方法直接转换) 二进制值 10进制值 公式 0 0  0 1 1 1  10 2 f(2)=10^1 =10 11 3 f(3):比 log?3最小的整数位1,记录10^1,并3-(2^1)=1,

华为笔试练习题----解析9进制,11进制的字符串为10进制的数字输出

                                                                              解析9进制,11进制的字符串为10进制的数字输出 描述: 解析9进制,11进制的字符串为10进制的数字输出,输入的字符串有效位(0v0012345678)长度不超过8位,前面的00不算做有效位.解析后以10进制的数字输出.如果解析到非法字符串则返回-1 9进制: 9进制的数的范围:0,1,2,3,4,5,6,7,8 9进制的开始为:0V或者0

从文件读入16进制数转化为10进制数再输出到文件中

sSN LMDscandata 1 1 B98C27 0 0 85C0 85C3 F55D73C5 F55DCC81 0 0 7 0 0 1388 168 0 1 DIST1 3F800000 00000000 DBBA0 1388 B5 136C 1373 136B 1389 1398 1356 136D 1386 137B 139C 13C4 13F7 1531 174D 1751 1755 1765 176C 1777 177B 1784 1791 1796 17A8 17C0 17C6

C语言实现字符串中(10进制和16进制)转成十进制数

如何将字符串中的10进制数和16进制数提取出来,看以下代码: #include <stdio.h> typedef char TUINT8 ; typedef int TUINT32; TUINT32 Read_DecNumber(const TUINT8* str); TUINT32 Read_HexNumber(const TUINT8* str); int main(void) { int ret = Read_DecNumber("1000"); int d = R

10进制正整数转4位定长的36进制字符串

题目描述: 请设计一个函数可以把10进制的正整数转换为4位定长的36进制字符串. 36进制的规则为:“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”; 举例说明: 1=“0001” 10=“000A” 20=“000K” 35=“000Z” 36=“0010” 100=“002S” 2000=“01JK” 这是腾讯2015校园招聘技术类研发笔试题中的一题,给出自己的答案,欢迎拍砖. solution: string convert(int x) { string re

JavaScript中二进制与10进制互相转换

webpack打包生成的代码中涉及了一些二进制位与的操作, 所以今天来学习一下JavaScript中的二进制与十进制转换操作吧 十进制转二进制: var num = 100 num.toString(2)   // 如果省略了这个参数,默认是10进制 语法:NumberObject.toString(radix) radix可选 为2~36之间的数 二进制转十进制: var num = '1100100'    //这里用number类型也可以,会被自动转换 parseInt(num,2) 语法

[转]as3 算法实例【输出1 到最大的N 位数 题目:输入数字n,按顺序输出从1 最大的n 位10 进制数。比如输入3,则输出1、2、3 一直到最大的3 位数即999。】

思路:如果我们在数字前面补0的话,就会发现n位所有10进制数其实就是n个从0到9的全排列.也就是说,我们把数字的每一位都从0到9排列一遍,就得到了所有的10进制数. 1 /** 2 *ch 存放数字 3 *n n位数 4 *index 计数值 5 **/ 6 private function num(ch:Array,n:int,index:int):void 7 { 8 if(index==n) 9 { 10 trace(ch); 11 return; 12 } 13 for(var i:in

MFC 编辑框输入16进制字符串转换为16进制数或者10进制数据计算

1.编辑框添加变量,并选择变量类型为CString. 2.  使用"_tcstoul"函数将Cstring 类型转换为16进制/10进制数进行计算. 原文地址:https://www.cnblogs.com/lize19940412/p/10068273.html