数值转化(如十进制到二进制)

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a[100],s[100],i,n,r,k;
    printf("input a number\t");
    scanf("%d",&n);                //输入一个数
    printf("input r\t");
    scanf("%d",&r);                //转化为r(二进制,十进制)
    k=1;
    do
    {
        a[k]=n%r;
        k++;
        n = n/r;
    }while(n>0);

    for(i=k-1;i>0;i--)
        printf("%d",a[i]);
    return 0;
}
时间: 2025-01-09 19:07:41

数值转化(如十进制到二进制)的相关文章

C十进制和二进制转化

1 /*递归形式的十进制数转化为二进制数*/ 2 void D2B( int n ) 3 { 4 if( n == 0 ) 5 return ; 6 else{ 7 D2B( n/2 ); 8 printf("%d",n%2); 9 } 10 } 11 12 /*二进制字符串转化为十进制整数*/ 13 int B2D(char *s) 14 { 15 int sum = 0; 16 int len = strlen(s); 17 int i; 18 for(i=len-1;i>=

十进制、二进制、八进制、十六进制之间的转换[基础]

今天翻了一本计算机基础的书籍,其中十进制.二进制.八进制.十六进制之间的转换挺有意思的,也容易犯糊涂,特温故而知新. 十进制数制系统 十进制数制系统包括 10 个数字:0.1.2.3.4.5.6.7.8.9 基为:10        逢十进一,如3+7=10,20+80=100 二进制数制系统 计算机中使用二进制表示数据 二进制包括两个符号:0和1 二进制逢二进一:(1+1)2=(10)2 二进制的基为2 示例:1000101100101101 八进制数制系统 用于缩短二进制的数字长度 八进制基

20180417_十进制与二进制的转换

一.十进制转二进制 1.正数 十进制转二进制的方法是递归除2,直到商等于0停止,倒序取余数:二进制通常呈4位.8位.16位.32位出现,高位不足补0: 以十进制55为例: 最终得到的二进制数值为  11 0111 ,高位补0最终得到  0011 0111: 2.负数 负数转二进制需要先将负数取反得到正的十进制数值,之后根据正数的规则转换成二进制,再将二进制取反后加1: 以十进制-55为例: ① 取反得到数值55 ② 55转换二进制为 0011 0111 ③ 将 0011 0111 取反得到 11

十进制与二进制之间的相互转化

当十进制数转化为二进制数时 用除2取余法,即将十进制数辗转除2取其余数,直至结果为1 .然后将结果1及余数以从后向前的方向正确写出即为 所求二进制数(位数不足时在前方补0). 例:    95求二进制 95 / 2 = 47 / 2 = 23 /2 = 11 / 2 = 5 / 2 = 2 / 2 = 1 余数:       1          1          1            1         1          0 结果为:01011111 当二进制数转化为十进制数时 用

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

PHP函数篇详解十进制.二进制.八进制和十六进制转换函数说明 作者: 字体:[增加 减小] 类型:转载 中文字符编码研究系列第一期,PHP函数篇详解十进制.二进制.八进制和十六进制互相转换函数说明,主要掌握各进制转换的方法,以应用于实际开发 一,十进制(decimal system)转换函数说明 1,十进制转二进制 decbin() 函数,如下实例 echo decbin(12); //输出 1100 echo decbin(26); //输出 11010 decbin (PHP 3, PHP

十进制与二进制

0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 十进制与二进制 十进制3456 = 3x103 + 4x102 + 5x101 + 6x100二进制转化为十进制,相乘并相加1101010=1x26 + 1x25 + 0x24 + 1x23 + 0x22 + 1x21 + 0x20= 64 + 32 + 0x16 + 8 + 0x4 + 2 + 0x1 = 106十进制转化为二进制 最后的写法就如同上面的红色箭头,由最后的数字向上写,因此可得到

十进制、二进制、八进制、十六进制互相转换

十进制数由0~9共10个数字字符组成,在十进制数的每一位上满十进一,在十进制每一位中表示最大数字为9. 二进制数由0和1两个数字字符组成,在二进制中“逢二进一”,在二进制每一位中表示最大数字为1. 八进制是由0~7共8个数字字符组成,在八进制中“逢八进一”,在八进制中每一位中表示最大数字为7. 十六进制是由0~9.A.B.C.D.E.F共16个字符组成,在十六进制中“逢十六进一”,在十六进制中最大的数是F. 首先,讲讲十进制转二进制: 例: 十进制要转二进制 就拿55除以2 55/2=27余1,

JS十进制转二进制(控制位数)

主要需求:十进制转二进制,控制指定的位数. 转化显示后的二进制数为bin-bit中输入的数字宽度.dec-number为5,bin-bit为5,则转化后数字为00101.如果bin-bit小于转化后的二进制本身位数,则使用原本的位数,如dec-number为5,bin-bit为2,依然输出101,但同时在console中报个错. <!DOCTYPE html><html><head> <meta charset="UTF-8"> <

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

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

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

同学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&