精华内容
下载资源
问答
  • C语言栈的方式实现十进制数转换二进制数,完整代码,DEVC中直接使用
  • 已知一个只包含0和1的二进制数,长度不大于10,将其转换为十进制并输出。 输入描述 输入一个二进制整数n,其长度不大于10 输出描述 输出转换后的十进制数,占一行 样例输入 110 样例输出 6 solution:  很多学过C...
  • visual c++ 2进制字符串转10进制数
  • 汇编语言:将四位十六进制数转换成二进制数题目要求运行截图编程平台代码实现 题目要求 从键盘接收一个四位的十六进制数,将其转换成二进制数后输出,不考虑错误输入。 运行截图 编程平台 Masm for Windows 集成...

    汇编语言:将四位十六进制数转换成二进制数

    题目要求

    从键盘接收一个四位的十六进制数,将其转换成二进制数后输出,不考虑错误输入。

    运行截图

    编程平台

    Masm for Windows 集成实验环境 2012.5

    代码实现

    DATAS SEGMENT
        data DW 0;存放输入的十六进制数
        input DB 'Enter a four-digit hexadecimal number: $'
        print DB 13,10,'Corresponding binary number: $'
    DATAS ENDS
    
    STACKS SEGMENT STACK
        DB 200H DUP(?)
    STACKS ENDS
    
    CODES SEGMENT
        ASSUME CS:CODES,DS:DATAS,SS:STACKS
    MAIN PROC
        MOV AX,DATAS
        MOV DS,AX
        
        LEA DX,input;输入提示
        MOV AH,9H
        INT 21H
        
        ;循环接收四个字符,一边接收一边整合到data变量中
        LEA SI,data
        MOV DI,4;输入的字符个数
      l:
        MOV AH,1H;输入一个字符
        INT 21H
        CALL SUBP1;将输入的字符转换成对应的十六进制数
        MOV AH,0
        MOV BX,AX;BX存放转换好的十六进制数
        ;将当前字符移动到正确位置
        MOV AX,DI
        DEC AX
        CMP AX,0;判断是否需要移位
        JE n
        MOV CL,4
        MUL CL
        MOV CL,AL
        SHL BX,CL
      n:
        ADD [SI],BX
        DEC DI
        CMP DI,0
        JNE l
        
        LEA DX,print;输出提示
        MOV AH,9H
        INT 21H
        
        MOV BX,data
        CALL SUBP2;用二进制形式输出数据
        
        MOV AH,4CH
        INT 21H
    MAIN ENDP
    ;子程序
    ;功能:将输入的字符转换成对应的十六进制。
    ;入口参数:AL存放输入的字符。
    SUBP1 PROC
        ;判断是否为数字
    	CMP AL,30H
    	JB stop
        CMP AL,39H
        JG upper
        SUB AL,30H
        JMP stop
        
        ;判断是否为大写字母(A-F)
    upper:
        CMP AL,41H
        JB stop
        CMP AL,46H
        JG lower
        SUB AL,37H
        JMP stop
        
        ;判断是否为小写字母(a-f)
    lower:
        CMP AL,61H
        JB stop
        CMP AL,66H
        JG stop
        SUB AL,57H
        
    stop:
        RET
    SUBP1 ENDP
    ;子程序
    ;功能:用二进制形式输出数据。
    ;入口参数:BX存放要转换的数据。
    SUBP2 PROC
        MOV CH,4;外循环次数,以循环得到每半个字节
        MOV CL,4;移位次数
        
      b:
        ROL BX,CL
        MOV AL,BL
        AND AL,0FH;高4位置0,低4位保持不变
        MOV DH,4;内循环次数,以循环得到每一位
        
     bo:
        ROL AL,1;每次循环移位一次,使AL的高4位依次单独存放其低4位中从左到右的每一位
        MOV DL,AL
        SHR DL,CL;使得DL中的高4位右移4位到低4位,并置高4位为0
        ADD DL,30H
        AND AX,0FH;AX低8位中的低4位保持不变,其他置0
        PUSH AX;保存,因为下面会使AH和AL的值改变
        MOV AH,2H
        INT 21H
        POP AX;恢复
        DEC DH
        CMP DH,0
        JNE bo
        
        MOV DL,' ';输出空格以便校对二进制数结果的正确性
        MOV AH,2H
        INT 21H
        
        DEC CH
        JNZ b
        
        RET
    SUBP2 ENDP
    CODES ENDS
        END MAIN
    

    如果文章内容出错或者您有更好的解决方法,欢迎到评论区指正和讨论!

    展开全文
  • 导语:在C语言中没有将...下面给大家讲述一下如何编程实现将十进制数转换成二进制数。 先将源代码展示给大家: #include <stdio.h> void main() { //进制转换函数的声明 int transfer(int x);...

    导语:在C语言中没有将其他进制的数直接输出为二进制数的工具或方法,输出为八进制数可以用%o,输出为十六进制可以用%x,输出为二进制就要我们自行解决了。下面给大家讲述一下如何编程实现将十进制数转换成二进制数。

     

    先将源代码展示给大家:

    #include <stdio.h>
    void main()
    {
        //进制转换函数的声明
        int transfer(int x);
        int x;
        printf("请输入一个十进制数:");
        scanf("%d",&x);
        printf("转换成二进制数是:%d\n",transfer(x));
    }
    int transfer(int x)
    {
        int p=1,y=0,yushu;
        while(1)
        {
            yushu=x%2;
            x/=2;
            y+=yushu*p;
            p*=10;
            if(x<2)
            {
                y+=x*p;
                break;
            }
        }
        return y;
    }
    具体算法体现在函数体内,使用了一个while(1)的死循环,当结果产生后跳出循环。变量yushu是每一次循环内产生的余数,变量x每次循环都会被赋予新的值,这个新的值就是每一次循环内产生的商。当产生的商小于2时即产生了最后的结果(二进制数),然后跳出循环。

    例如:函数自变量若为7,用自变量7除以2,得到第一次循环产生的余数为1,第一次循环产生的商为3;用第一次循环产生的商3除以2,得到第二次循环产生的余数为1,第二次循环产生的商为1。

    变量y的存放也是有一定技巧的,由于每次产生的余数都小于2并且都是最后二进制数中需要按位展现出来的,因此每一次循环产生的余数都要合理地进行存放。第一次产生的余数放在个位,第二次产生的余数放在十位,第三次产生的余数放在百位......依次类推,直至某一次循环产生的商小于2,最后再把小于2的那个商放在最高位。变量p的作用就是控制位数,变量y的初始值定为0,变量p的初始值定为1,每次循环内变量p都自乘10,每次循环内都让变量y加上yushu*p,这样就实现了余数的按位存放。最后将小于2的那个商乘以p加到变量y中,得到最后的二进制数。

    例如:还是以自变量7为例,第一次循环后y的值为1,第二次循环内if语句之前y的值为11,if语句内y的值变为111,111即为7的二进制数。

     

    注意:变量p的自乘要放在变量y加上yushu*p之后!顺序不能颠倒!
    --------------------- 
    作者:De掉所有bug 
    来源:CSDN 
    原文:https://blog.csdn.net/weixin_41676881/article/details/80745177 
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • 介绍了C++ 十进制转换二进制的实例代码,有需要的朋友可以参考一下
  • 用c语言写的小程序,功能是将十进制数转换二进制数
  • 第一部分:整数转换 逐次除2取余法用2逐次去除待...例子1: 将83转换成二进制数(逐次除2取余法) 得到的余数依次为: 1 0 1 0 0 1 1 可得到:(83)10=(1010011)2第二部分:小数转换 乘2取整法逐次用2去乘待...
    第一部分:整数转换  
    逐次除2取余法
    

    用2逐次去除待转换的十进制整数,直至商为0时停止;每次所得的余数即为二进制数码,先得到的余数在低位,后得到的余数排在高位。

    例子1: 将83转换成二进制数(逐次除2取余法)

           

     得到的余数依次为: 1    0    1    0    0    1     1

      可得到:(83)10=(1010011)2


    第二部分:小数转换   乘2取整法

    逐次用2去乘待转换的十进制小数;将每次得到的整数部分(0或1)依次记为二进制小数b-1,b-2,…,b-m。

    例子2: 将十进制小数0.8125转换为二进制小数


    可得到:(0.8125)10= (0.1101)2 

    例3:将0.335转换为二进制小数,精确到0.001

    注:并非每一个十进制小数都能转换为有限位的二进制小数,此时可以采用0舍1入的方法进行处理(类似于十进制中的四舍五入的方法


    可得到:(0.335)10 =(0.0101…)2 ≈(0.011)2


    展开全文
  • 把任意一个十进制数转换二进制八进制十六进制数的c++源代码
  • 二进制数与十进制数的转换二进制数的运算前,我们先看看二进制数的值与十进制数的值是如何相互转换的, 十进制转换成二进制 将十进制数除以2,得到的商再除以2,依次类推直到商为1时为止,然后在旁边标出各步的...

    二进制数与十进制数的转换

    聊二进制数的运算前,我们先看看二进制数的值与十进制数的值是如何相互转换的,
    十进制转换成二进制
    将十进制数除以2,得到的商再除以2,依次类推直到商为1时为止,然后在旁边标出各步的余数,最后从下往上倒着写出来,高位补零就可以成功转换成二进制。
    例如下图49的二进制数就是110001
    在这里插入图片描述
    二进制转换成十进制
    只需将二进制数的各数位的值和位权相乘,然后将相乘的结果相加即可,有木有感觉特别方便。
    在这里插入图片描述
    二进制数的符号位
    二进制数中表示负数值时,一般会把最高位作为符号位来使用,最高位为0代表正数,最高位为1代表负数。
    这时了解二进制的人可能就会疑问,既然最高位1代表负数,1是00000001,那-1应该是10000001,为什么是11111111呢?要解释这个我们要先引入“补数”的概念,因为计算机在做加减运算时其实内部只会做加法运算,所以为了表示负数,就用正数来表示负数,这就是负数的概念。得到补数的方法很简单,进行取反操作,将二进制数的各位数的数值由1变为0,0变为1,再将结果加上1就可以了。

    00000001——————1(十进制)
    先进行取反操作,之后再加上1
    11111110
    变成
    11111111——————-1(十进制)

    不信的同学还可以验证以下,就会发现8位二进制的-1+1刚好等于100000000,而计算机会直接忽略掉最高位溢出的那个数字,所以刚好是00000000了。

    二进制数的乘除运算

    二进制数的乘除运算有两种方法,要么先转化位十进制数进行运算之后再转换为二进制(想来有点麻烦),要么头铁直接用二进制数进行乘除运算。

    在这里插入图片描述
    二进制数111乘以1011,乘数1011的每一位分别与乘数相乘,得到111、1110、00000、111000,将其加起来,得到1001101,这便是二进制乘法最直接的解求过程;也可以将111转化为十进制数7,1011转化为十进制数11,显版然7乘以11等于77,再将十进制数77化为二进制数1001101,显然1x26+1x23+1x22+1x20=64+8+4+1=77,所求结果完全正确。——百度

    二进制数的移位运算

    移位运算可是二进制的门面招牌
    在这里插入图片描述

    移位运算指的是将二进制数值的各数位进行左右移位(shift=移位)的运算。移位有左移(向高位方向)和右移(向低位方向)两种。在一次运算中,可以进行多个数位的移位操作。在程序代码中<<这个运算符表示左移,>>这个运算符表示右移,

    int a=1;
    int b;
    b=a<<3;//b现在为8

    运算符左侧是被移位的值,右侧表示要移位的位数。看到这有些同学就会想到,这移了几位不多了几个空白处么,计算机这千年老怪早想好了,如果是左移运算的话,它就会在空出来的低位补0。如果是右移运算的话,就稍微有点特殊,因为存在两种情况,既可以填1也可以填0,这就是逻辑右移和算数右移的区别。

    当二进制数的值表示图形模式而非数值时,移位后需要在最高位补0.类似于霓虹灯往右滚动的效果。这就称为逻辑右移。
    将二进制数作为带符号的数值进行运算时,移位后要在最高位填充移位前符号位的值(0或1)。这就称为算数右移。例如负数就在最高位补1,正数就在最高位补0。
    在这里插入图片描述

    展开全文
  • void fun(intx,intb[]) { int k=0,r; do { r=x%2; b[k++]=r; x/=2;}while(x); }
  • 题目: 输入一个十进制数,将其转换成二进制数。(使用循环实现) 代码如下: package java_object.test1_1; import java.util.Scanner; /** * @作者:
  • string toBinary(int x){//x为有符号整数,该函数返回转换后的二进制数 bitset<8> t(x);//“8”为转换后的二进制数位,可变化 return t.to_string(); } int main() { int x; cin>>x; string rst;...
  • 适用于将二进制数转换为十进制,A为十进制,B为二进制。{A,B}每次左移一位,判断A的每四位是否>4,若大于四则+3,否则保持不变;B为多少位二进制数则左移多少次。最终A是B转换成十进制的数。代码为32位二进制数转换...
  • 十进制负数转换成二进制数的方法

    千次阅读 2017-07-24 16:35:44
    负数转换二进制,就是将其相反(正数)的补码的每一位变反(1变0,0变1)最后将变完了的数值加1,就完成了负数的补码运算。这样就变成了二进制。 举个例子: 将-1变成二进制。 ①首先确定二进制的位数,...
  • //以二进制的形式输出整数 #include void to_binary(unsigned long n); int main() { ... unsigned long number;... printf("请输入一个整数(按q退出):\n");... printf("二进制数是:");  to_binary(nu
  • 我们看到所转换的2进制数按底位到高位的顺序产生的,而通常的输出是从高位到低位的,恰好与计算过程相反,因此转换过程中每得到一位2进制数则进栈保存,转换完毕后依次出栈则正好是转换结果。 请实现其算法。
  • 用数据结构栈实现的数制转换,将十进制数转换二进制,八进制,十六进制。
  • 汇编语言:将ASCⅡ码表示的十进制数转换二进制数/十六进制数 你们好! 这是我的第一个汇编程序的博客,汇编是一个神奇的东西,你深入了解他之后会为他着迷的!!! 题目 将ASCⅡ表示的十进制数字转化为二进制数,...
  • 主要介绍了python十进制和二进制转换方法(含浮点数),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 调用栈的基本操作(自由选择顺序栈或链栈),实现将一个十进制整数转换成2进制数的功能; 循环执行将十进制数除2的操作,...然后出栈输出可得二进制数的“序列”; 实现将十进制整数转换为N进制数的功能,N由键盘输入。
  • 这个是个c的小程序,适合初学者。内容是将一个八进制的数转换成二进制
  • python中将数字转换成二进制数

    千次阅读 2020-09-05 07:09:49
    python中将数字转换成二进制数 256 128 64 32 16 8 4 2 1 1 0 1 0 1 0 1 1 0 这是快速得到342的方法 在python3.6中快速得到342的方法是使用bin,bin(342)
  • 【汇编】将ASCII码表示的十进制数转换成二进制数

    万次阅读 多人点赞 2016-06-15 17:07:29
    输出到屏幕,用16进制表示 MOV AL,DS:[SI] AND AL,0F0H MOV CL,4 SHR AL,CL CMP AL,0AH JB C2 ADD AL,07H C2: ADD AL,30H MOV DL,AL MOV AH,02H INT 21H MOV AL,DS:[SI] AND AL,0...
  • 实验课题一 将一个十进制数转换成另外一个P进制数字符串可以是二进制到十六进制转换函数的原 型为 void Convert (int n, char str[], unsigned P; n输入待转换的数 str输出转换好的P进制字符串 P输入要转换的进制...
  • 十进制数转换二进制数以及浮点数存储方法

    万次阅读 多人点赞 2019-03-22 15:45:26
    一、十进制数转换二进制数 十进制数转换二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。 1. 十进制整数转换为二进制整数 十进制整数转换为二进制...
  • 十进制数转换二进制数 C++前言一、十进制转换为二进制的数学算法二、代码实现1.设计转换函数transfer2.完整代码总结 前言 这篇文章和大家分享一下我个人对十进制数转换二进制数的想法,目前暂时更新只整数十...
  • C语言把十进制转换二进制数的方法和示例

    万次阅读 多人点赞 2020-04-18 22:46:34
    C语言中,整数都是以二进制的形式存放在内存中,所谓的二...您可以编写函数把其它进制数字转换成二进制数字,并保存在字符串中,然后在printf 函数中使用%s输出。 1、自定义的二进制输出函数dectobin 思路: 1)把十...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 594,444
精华内容 237,777
关键字:

怎么转换二进制数