Java实现十进制数转化为二进制数的算法

十进制转换为二进制并输出,本文仅讨论整数部分

  方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一

直持续下去,直到商为0为止;最后读数时候,从最后一个余数读起,一直到最前面的一个余数。
  下面举例:
  例:将十进制的168转换为二进制 
  得出结果 将十进制的168转换为二进制,(10101000)2 
  分析:

第一步,将168除以2,商84,余数为0。
  第二步,将商84除以2,商42余数为0。
  第三步,将商42除以2,商21余数为0。 
  第四步,

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
汇编语言可以通过一系列的运算和转移指令来实现二进制转化十进制数。具体实现步骤如下: 1. 读取二进制数:使用输入指令,将二进制数读入寄存器中。 2. 将二进制转化十进制数:将二进制数按位拆分,每一位上的数乘以相应的权重(2的幂次方),最后将所有结果相加即可得到十进制数。 3. 输出十进制数:使用输出指令,将十进制数输出到指定位置。 以下是汇编语言实现二进制转化十进制数的示例代码: ``` section .data binary db 10101010b ; 定义一个二进制数 result db 0 ; 定义一个存储结果的变量 section .text global _start _start: ; 读取二进制数 mov al, [binary] ; 将二进制转化十进制数 mov bl, 1 ; 初始权重为1 mov cl, 8 ; 循环8次,对应8位二进制数 mov dh, 0 ; 存储结果的高位 mov dl, 0 ; 存储结果的低位 loop_start: shr al, 1 ; 将二进制数右移一位,相当于除以2 jnc skip_add ; 如果最低位为0,则跳过加法运算 add dl, bl ; 加上当前位的权重 skip_add: inc bl ; 权重乘以2 dec cl ; 循环计数器减1 jnz loop_start ; 如果循环计数器不为0,则继续循环 mov [result], dl ; 将结果存储到变量中 ; 输出十进制数 mov eax, 4 ; 调用输出指令 mov ebx, 1 ; 输出到标准输出设备 mov ecx, result ; 输出结果变量的地址 mov edx, 1 ; 输出1个字节 int 0x80 ; 调用系统中断 ; 退出程序 mov eax, 1 ; 调用退出指令 xor ebx, ebx ; 返回值为0 int 0x80 ; 调用系统中断 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值