精华内容
下载资源
问答
  • 二进制十进制数字转换使用加权列来标识数字的顺序以确定数字的最终值将二进制转换十进制(base-2到base-10) )数字和背面是一个重要的概念,因为二进制编号系统构成了所有计算机和数字系统的基础。十进制或...

    二进制到十进制数字转换使用加权列来标识数字的顺序以确定数字的最终值

    将二进制转换为十进制(base-2到base-10) )数字和背面是一个重要的概念,因为二进制编号系统构成了所有计算机和数字系统的基础。

    十进制或“denary”计数系统使用Base-of-10编号系统,其中数字中的每个数字都取10个可能值中的一个,称为“数字”,从 0 到 9 ,例如。 213 10 (二百一十三)。

    但是,除了10位数(0到9)之外,十进制编号系统还具有加法运算( + ),减法( - ),乘法(×)和除法(÷)。

    在十进制系统中,每个数字的值都比其前一个数字大十倍,这个十进制数字系统使用一组符号 b ,以及一个基数 q ,确定一个数字内每个数字的权重。例如,六十分之六的权重低于六百分之六。然后在二进制编号系统中,我们需要一些方法将十进制转换为二进制以及从二进制转换为十进制。

    任何编号系统都可以通过以下关系总结:

    N = b i q i

    where:

    N 是一个实数正数

    b 是数字

    是基数值

    和整数( i )可以是正数,负数或零

    N = b n q n ... b'的子> 3 q 3 + b 2 q 2 + b 1 q 1 + b 0 q 0 + b -1 q -1 + b -2 q -2 ... etc。

    十进制编号系统

    在十进制中, base-10(den)或denary编号系统,当我们沿着从右到左的数字移动时,每个整数列具有单位,数十,数百,数千等的值。在数学上,这些值写为10 0 ,10 1 ,10 2 ,10 3 等。然后每个位置在小数点左边表示增加的正幂为10.同样,对于小数,当我们从左向右移动时,数字的权重变得更负,10 -1 ,10 -2 ,10 -3 等

    所以我们可以看到“十进制编号系统”的基数为10或 modulo-10 (有时称为MOD-10),十进制系统中每个数字的位置表示该数字的大小或重量为 q 等于“10”(0到9)。例如,20(二十)与说2 x 10 1 相同,因此400(四百)与说4 x 10 2 相同。

    任何十进制数的值将等于其数字之和乘以各自的权重。例如: N = 6163 10 (六千一百六十三)十进制格式等于:

    6000 + 100 + 60 + 3 = 6163

    或者可以写出反映每个数字的权重:

    (6×1000)+(1×100)+(6×10)+(3×1)= 6163

    或它可以用多项式形式写成:

    (6×10 3 )+(1×10 2 )+(6× 10 1 )+(3×10 0 )= 6163

    在此十进制编号系统示例中,最左边的数字是最高有效数字或MSD,最右边的数字是最低有效数字或LSD。换句话说,数字 6 是MSD,因为它的最左侧位置承载的权重最大,而数字 3 是LSD,因为它的最右侧位置承载的权重最小。

    二进制编号系统

    二进制编号系统是所有基于数字和计算机的系统中最基本的编号系统,二进制数遵循相同的设置规则作为十进制编号系统。但是与使用10的幂的十进制系统不同,二进制编号系统使用2的幂,给出从base-2到base-10的二进制到十进制的转换。

    数字逻辑和计算机系统仅使用两个用于表示条件,逻辑电平“1”或逻辑电平“0”的值或状态,并且每个“0”和“1”被认为是2的基数(bi)中的单个数字或“二进制编号系统“。

    在二进制编号系统中,二进制数字如 101100101 用字符串”1“和”0“表示,每个数字沿字符串从右到左的值是前一个数字的两倍。但由于它是二进制数字,因此它只能具有“1”或“0”的值,因此 q 等于“2”(0或1),其位置表示其重量字符串。

    由于十进制数是一个加权数,从十进制转换为二进制(基数10到基数2)也会产生加权二进制数,右边最多位为最低有效位或LSB,最左边的位是最高有效位或MSB,我们可以代表这个:

    二进制数的表示

    MSB

    二进制数字

    LSB

    2 8

    2 7

    2 6

    2 5

    2 4

    2 3

    2 2

    2 1

    2 0

    256

    128

    64

    32

    16

    8

    4

    2

    1

    我们在上面看到,在十进制数系统中,每个数字从右到左的权重增加了10倍。在二进制数系统中,权重如图所示,每个数字增加了一个因子 2 。然后第一个数字的权重为 1 ( 2 0 ),第二个数字的权重为 2 ( 2 1 ),第三个是 4 的重量( 2 2 ) ,第四个是 8 ( 2 3 )的权重,依此类推。

    例如,转换二进制到十进制数字将是:

    十进制数字值

    256

    128

    64

    32

    16

    8

    4

    2

    1

    二进制数字值

    1

    0

    1

    1

    0

    0

    1

    0

    1

    加在一起在由“ 1 ”表示的位置从右到左的所有十进制数值给出:(256)+(64)+(32)+(4)+(1)= 357 10 或三百五十七作为十进制数。

    然后,我们可以通过查找二进制的十进制等效值将二进制转换为十进制数字数组 101100101 2 并将二进制数字扩展为基数为 2 的系列,其等效值为 357 10 十进制或否定。

    请注意,在数字转换系统中,“下标”用于表示相关的基本编号系统,1001 2 = 9 10 。如果在数字后没有使用下标,则通常假设成为小数。

    重复除2方法

    我们已经看到上面如何将二进制数转换为十进制数,但我们如何将十进制数转换为二进制数。将十进制数转换为二进制数等效的简单方法是写下十进制数并连续除以2(二)得到结果,并给出“1”或“0”的余数直到最终结果等于零。

    例如。将十进制数 294 10 转换为等效的二进制数。

    Number

    294

    如图所示,将每个十进制数除以“2”将得到一个结果加上一个余数。

    如果被分割的十进制数是偶数,那么结果将是整数并且余数将等于“0”。如果十进制数是奇数,那么结果将不会完全分割,余数将为“1”。

    二进制结果是通过将所有余数按最低有效位(LSB)排序得到的位于顶部,最重要位(MSB)位于底部。

    除以2

    结果

    147

    余数

    0(LSB)

    除以2

    结果

    73

    余数

    1

    除以2

    结果

    36

    余数

    1

    除以2

    结果

    18

    余数

    0

    除以2

    结果

    9

    余数

    0

    除以2

    结果

    4

    余数

    1

    除以2

    结果

    2

    余数

    0

    除以2

    结果

    1

    余数

    0

    除以2

    结果

    0

    余数

    1(MSB)

    这种除以2的十进制到二进制转换技术给出十进制数 294 10 相当于 100100110 2 二进制,从右到左阅读。这种2分频方法也适用于转换为其他数字基础。

    然后我们可以看到二进制编号系统的主要特征是每个“二进制数字” “或”位“具有”1“或”0“的值,每个位的权重或值是从最低位或最低位(LSB)开始的前一位的两倍,这称为”总和“权重“方法。

    因此我们可以通过使用权重和方法或使用重复的2分频方法将十进制数转换为二进制数,并将二进制数转换为十进制通过查找其权重和。

    二进制数字名称&前缀

    二进制数可以加在一起,也可以像十进制数一样减去,结果根据所使用的位数组合成几个大小范围之一。二进制数有三种基本形式 - 位,字节和字,其中一位是单个二进制数字,一个字节是八位二进制数字,一个字是16位二进制数字。

    分类将各个位分成更大的组通常由以下更常见的名称引用:

    二进制数字位数(位) )

    通用名称

    1

    4

    半字节

    8

    字节

    16

    Word

    32

    双字

    64

    Quad Word

    此外,从 Binary转换为Decimal 或甚至从 Decimal转换为Binary ,我们需要注意不要混淆两组数字。例如,如果我们在页面上写入数字10,如果我们假设它是十进制数字,它可能意味着数字“十”,或者它可能同样是二进制中的“1”和“0”,这是等于上面加权十进制格式中的数字2。

    在将二进制数转换为十进制数并确定所使用的数字或数字是十进制数还是二进制数时,要克服此问题的一种方法是在最后一位数字后写一个称为“下标”的小数字,以显示该数字的基数正在使用的数字系统。

    因此,例如,如果我们使用二进制数字串,我们将添加下标“2”来表示基数为2,因此数字将写为 10 2 。同样,如果它是标准十进制数,我们将添加下标“10”来表示基数为10的数字,因此该数字将写为 10 10 。

    今天,随着微控制器或微处理器系统变得越来越大,现在将各个二进制数字(位)组合成8个,形成单个 BYTE 与大多数计算机硬件如硬驱动器和内存模块通常以兆字节或甚至千兆字节表示其大小。

    字节数

    通用名称

    1,024(2 10 )

    千字节(kb)

    1,048,576(2 20 )

    兆字节(Mb)

    1,073,741,824(2 30 )

    技嘉(Gb)

    a非常长的数字!(2 40 )

    太字节(Tb)

    二进制到十进制摘要

    A“ BIT “是源自 BI nary digi T

    十进制系统使用10个不同的数字,0到9给它一个10的基数

    二进制数是加权值从右到左增加的加权数

    二进制数字的权重从右到左翻倍

    十进制数可以通过使用权重和方法或重复的二分法来转换为二进制数

    当我们转换时数字从二进制到十进制,或十进制到二进制,下标用于避免错误

    将二进制转换为十进制(base-2到base-10)或十进制到二进制数(base10到base) -2)可以通过如上所示的多种不同方式完成。将十进制数转换为二进制数时,重要的是要记住哪个是最低有效位( LSB ),哪个是最高有效位( MSB )。

    在下一个关于二进制逻辑的教程中,我们将研究将二进制数转换为十六进制数,反之亦然,并显示二进制数可以用字母和数字表示。

    展开全文
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼#include #include #include #define NUM 2#define ZERO 0.000001int PrnMainMenu(void);void ProcessLoop(void);...int a,b[10],i=0,c=0;void integer(int n) //...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

    #include

    #include

    #include

    #define NUM 2

    #define ZERO 0.000001

    int PrnMainMenu(void);

    void ProcessLoop(void);

    void two(void);

    void ten(void);

    int a,b[10],i=0,c=0;

    void integer(int n) //定义整数部分

    {

    if(n>0)

    {

    integer(n/NUM);

    printf("%d",n%NUM);

    }

    }

    void decimal(double m)//定义小数部分

    {

    if(m>ZERO)

    {

    m=m*NUM;

    printf("%d",(long)m);

    decimal(m-(long)m);

    }

    }

    main() /*主函数*/

    {

    ProcessLoop();

    return 0;

    }

    void ProcessLoop(void)

    {

    int iChoice;

    iChoice = PrnMainMenu();

    while (iChoice != 3)

    {

    switch(iChoice)

    {

    case 1:

    two();

    break;

    case 2:

    ten();

    break;

    }

    system("pause");/*暂停*/

    system("cls"); /*_clearscreen(0);清屏 */

    iChoice = PrnMainMenu();//返回主菜单

    }

    return;

    }

    void two(void)//十进制转二进制

    {

    double f;

    long n;

    printf("请输入原数据:");

    scanf("%lf",&f);

    if(f<0)

    {

    printf("-");

    f=-f;

    }

    n=(long)f;//整数部分

    printf("转换成%d进制的小数为:",NUM);

    integer(n);

    printf(".");

    decimal(f-n);//小数部分的转换

    printf("\n");

    }

    void ten(void)//二进制转十进制

    {

    printf("请输入原数据\n");

    scanf("%d",&a);

    while(a!=0)

    {

    b[i]=a%10;

    a/=10;

    i++;

    }

    i--;

    for(;i>=0;i--)

    c=c*2+b[i];

    printf("十进制为:%d\n",c);

    }

    int PrnMainMenu(void)//主菜单

    {

    int iChoice;

    printf("\n");

    printf("----------------菜单-----------------\n");

    printf("\n");

    printf(" 1:将十进制数转换为二进制数\n");

    printf(" 2:将二进制数转换为十进制数\n");

    scanf("%d",&iChoice);

    return iChoice;

    }

    展开全文
  • 2.根据十进制转换二进制的思想:把这个数除以2若为单数则为1,为偶数则为0,直到最后一个数为1为止。所以我们要做的就是用你给定的这个数除以2,如果结果为奇数则r=1,否则r=0;如此循环下去,直到这个数〉=1。3.然后...

    将十进制转换成二进制的算法如下:

    1.给定一个数;

    2.根据十进制转换二进制的思想:把这个数除以2若为单数则为1,为偶数则为0,直到最后一个数为1为止。所以我们要做的就是用你给定的这个数除以2,如果结果为奇数则r=1,否则r=0;如此循环下去,直到这个数〉=1。

    3.然后把r的值送到一个数组里面。最后把这个数组里面的内容从后面打印出来就可以了。

    import java.util.Scanner;

    public class ZhuanHuan {

    public static void main(String[] args){

    System.out.println("请输入一个十进制数:");

    Scanner reader = new Scanner(System.in);

    int n=0;

    int i=0;

    int r=0;

    n=reader.nextInt();

    int[] a =new int[10];

    do{

    if(n%2==1){

    r=1;

    }

    else {

    r=0;

    }

    a[i]=r;

    n=n/2;

    i++;

    }

    while(n>0);

    System.out.println("转化成的二进制是:");

    for (int j = i-1; j>=0; j--) {

    System.out.print(a[j]);

    }

    }

    }

    十进制整数转换为二进制整数采用"除2取余,逆序排列"法

    具体做法是:用2整除十进制整数,可以得到一个商和余数,再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二

    制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

    对于数值n,二进制最后一位=n%2;计算得到的结果是最后要输出的结果,使用递归函数,联系递归的特点:在递归语句之前计算n%2,在递归调用语句之后

    输出结果,这样先计算的结果反而在最后输出。

    import java.util.Scanner;

    public class ChangeTo2 {

    /**

    * @param args

    */

    public static void main(String[] args) {

    // TODO Auto-generated method stub

    System.out.println("请输入一个整型的十进制数:");

    Scanner reader = new Scanner(System.in);

    int num = 0;

    num = reader.nextInt();

    System.out.print("转换后的二进制数为:");

    toBinary(num);

    }

    //递归函数

    static void toBinary( int num){

    int r;

    r = num%2;//最后一位要输出的,即使参数=1,还是要计算到这里结束,只取出余数就ok了。然后顺次返回上一级主调函数,继续执行剩下的……

    //如果商 1 / 2 = 0,计算就可以终止了,不需要再算

    if(num>=2){

    //精华,联系10进制转2进制的算法,每次除以2,取出余数,然后用新的商继续除以2,取出新余数……直到商为0,余数逆序输出即可

    toBinary(num/2);//把新的商作为参数递归调用

    }

    //在递归语句之后输出,这样就是倒叙输出

    System.out.print(r);

    }

    }

    展开全文
  • Im trying to make a binary string into a decimal. It will terminate if -1 is entered. I am stuck with using an array. It was suggested to use: public static int binaryToDecimal (String binaryString) ....

    Im trying to make a binary string into a decimal. It will terminate if -1 is entered. I am stuck with using an array. It was suggested to use: public static int binaryToDecimal (String binaryString) . But Im not sure how to do that. This is what I have:

    import java.util.Scanner;

    public class BinaryConversion {

    public static void main(String[] args) {

    Scanner input = new Scanner(System.in);

    String inString;

    int decimal;

    System.out.println("Enter a binary number: ");

    inString = input.nextLine();

    while (inString != "-1") {

    int i;

    int binaryLength;

    binaryLength = inString.length();

    for (i = 0, decimal = 0; i < binaryLength; i++) {

    decimal = decimal * 2 + (inString[i] - 0);

    System.out.print(decimal);

    }

    System.out.println("Enter a binary number: ");

    inString = input.nextLine();

    }

    System.out.println("All set !");

    }

    }

    It says there is a compilation problem with the array. Thank you!

    解决方案

    You can simplify the code by using Integer.parseInt():

    public static void main(String[] args) {

    final Scanner input = new Scanner(System.in);

    String inString;

    while (true) {

    System.out.println("Enter a binary number: ");

    inString = input.nextLine();

    if (inString.equals("-1"))

    break;

    System.out.println(Integer.parseInt(inString, 2));

    }

    System.out.println("All set !");

    }

    展开全文
  • 二进制表示法在计算机科学中很重要,计算机中存储的所有...十进制的数字如何转换二进制的,举几个例子就明白了:图片来自https://www.geeksforgeeks.org/program-decimal-binary-conversion/将17作为被除数,除以2...
  • 首先,您粘贴的上面的代码有很多缩进问题,下次您应该尝试修复这些缩进问题并再次运行您的程序,然后再...你需要的条件是-^{pr2}$第,第个while循环,不应该在第一个while循环的内部,它应该在外部,这样当所...
  • c语言二进制怎么转换十进制?按照如下步骤即可用C语言把二进制转换十进制数的程序:推荐:《C语言教程》1、首先在主函数中设置成函数Sum,另外定义了一个数组array[8],用于存放输入的八位二进制数。2、然后使用...
  • 对于基础薄弱的读者,本节的内容可能略显晦涩和枯燥,如果觉得吃力,可以暂时跳过,用到的时候再来...将二进制、八进制、十六进制转换为十进制二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。...
  • 任意二进制转换十进制

    千次阅读 2021-05-21 02:40:38
    任意位数二进制转换十进制数c语言程序写作而成程序简明易懂附加有程序运行结果任意二进制十进制数程序代码:#include#include#includelong float change(char str[],int n){int xsd,i;for(i=0;i{if(str[i]=='....
  • C语言十进制转换二进制

    千次阅读 2021-05-19 19:45:36
    这是一个C语言 do while 循环示例:统计十进制正整数 n 转换二进制数后,其二进制序列中包含的 1 和 0 的个数。问题分析输入:一个正整数。输出:两个整数:1 的个数和 0 的个数。将十进制数 n 转换二进制数,...
  • 利用一个函数实现十进制转换二进制,八进制,十六进制。利用的是栈的后进先出的思想。算法简单。#include#include#include#define STACK_INIT_SIZE 100#define STACKINCREMENT 10#define OVERFLOW -2#define OK 1#...
  • 【教学重点与难点】1、难点位权表示法 十进制转化为二进制 2、重点二、十进制间相互转换【教学过程】 (以下教师的语言、活动简称“师”,学生的活动简称“生”)(一) 新课导入师猜一猜简单的数字10,这是几 我认为这...
  • 计算机中十进制转换二进制的另一方法-------“定位减权法”胡燏(四川建筑职业技术学院计算机系,618000)【摘要】本文从十进制与二进制的特点入手,介绍一种把十进制数转换为二进制的新方法。【关键字】十进制 ...
  • #include<stdio.h> void main(){ ... printf("%d的二进制数为:",num); while(num!=0){ a[i]=num%2; num=num/2; i++; } for(i=i-1;i>=0;i--){ printf("%d",a[i]); } } ...
  • 十进制转换二进制数 C++

    千次阅读 2021-04-12 21:57:07
    十进制数转换为二进制数 C++前言一、十进制转换二进制的数学算法二、代码实现1.设计转换函数transfer2.完整代码总结 前言 这篇文章和大家分享一下我个人对十进制数转换为二进制数的想法,目前暂时更新只整数十...
  • 我正在尝试使用Java将用户输入的十进制转换二进制数。我收到错误package reversedBinary;import java.util.Scanner;public class ReversedBinary {public static void main(String[] args) {int number;Scanner in...
  • 由于计算机中运行的数据都是以二进制数的形式存在的,学习二进制数的计算成为计算机专业...例如00000000 代表十进制数0二进制数的每一位对应一个十进制数例如 由于二进制最大8位一组,也就是说一组的最大数字问255这...
  • #include <stdio.h> int main(void) { int i,j; int n; int a[32]; scanf("%d",&n); for(i=0;n>0;i++) { a[i]=n%2; n/=2; } for(j=i-1;j>=0;j--) printf("%d",a[j]);...}
  • 用C语言顺序栈实现十进制二进制转换#include#include#include#define M 100typedef int datatype;typedef struct{datatype data[M];int top;}seqstack;void InitStack(seqstack *s){ //初始化顺序栈s->top=-1...
  • 二进制转换十进制 算法解析

    千次阅读 2021-03-06 16:26:56
    java里面是有进制间互换现成的方法的:public class十进制与各进制的相互转换 {public static voidmain(String[] args){//java已经实现的机制:十进制转换二进制int decimal = 10;System.out.println("十进制数:"+...
  • printf("请输入十进制的数: "); scanf("%d",&a); i=ShiToEr(a,b); printf("对应的二进制数为: "); for(int j=i;j>=0;--j) printf("%d" ,b[j]); printf("\n"); return 0; } 那个负数好解决,但是那个小数的话,我...
  • 二进制转换十进制:public static double bin2DecXiao(String binXStr) {double decX = 0.0; //位数int k = 0;for (int i = 0; i < binXStr.length(); i++) {int exp = binXStr.charAt(i)...
  • 我们在学习python时候肯定会碰到关于进制转换,其实这是非常简单的,这个就像小学学习数学乘法口诀意义,只要记住转换口诀即可轻松应用,一起来看下具体的操作内容吧~一、python进制转换dec(十进制)—> bin(...
  • 任何学习C语言的朋友们C语言之十二转换在C语言程序中,各种类型的变量大多是以十进制的形式描述的,但是实际上这些变量在C语言中是以二进制的形式储存的,那么有些朋友就问了,数据的十进制二进制之间是怎么进行...
  • 1、计算机中的十进制与二进制的转换【 课 题 】 二进制十进制转换 【教学目的与要求】 1、熟悉数制的概念; 2、掌握位权表示法; 3、熟练掌握各数制之 间的转换方法。【教学重点与难点】 难点:位权表示法 十进制 ...
  • 本文实例讲述了Python实现的十进制小数与二进制小数相互转换功能。分享给大家供大家参考,具体如下:十进制小数 ⇒ 二进制小数乘2取整对十进制小数乘2得到的整数部分和小数部分,整数部分即是相应的二进制数码,再用...
  • 代码1:二进制转换十进制 #include <stdio.h> #include <math.h> int convertBinaryToDecimal(long long n); int main() { long long n; printf("输入一个二进制数: "); scanf("%lld", &n); ...
  • 小数部分可利用该编程方法(详见Python-十进制的小数部分转换为其他进制数)进行转换。最后分别将转换之后的整数部分和小数部分写在一起即可。这里在前面编程方法的基础上(详见Python-十进制的小数部分转换为其他进制...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 275,422
精华内容 110,168
关键字:

十进制10转换二进制