用C语言程序将十进制数转换为二进制数

用C语言程序将十进制数转换为二进制数

M.
M.
2023-10-25 / 2 评论 / 93 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年10月26日,已超过233天没有更新,若内容或图片失效,请留言反馈。

将十进制数18转换为二进制

  1. 将18除以2,得商9,余数为0
  2. 将9除以2,得商4,余数为1
  3. 4除以2,得商2,余数为0
  4. 2除以2,得商1,余数为0
  5. 1除以2,得商0,余数为1

将余数从下往上排列,得到二进制数10010

同样的,在C语言中,可以通过代码实现二进制数的转换,例如:

说明

  1. 引入头文件 stdio.h 使得程序能够使用其中定义的函数和宏。例如, printf() 函数用于向标准输出设备打印输出
  2. int main() {} 主函数的开始,程序从这个位置开始执行
  3. int 是一种基本数据类型,用于表示整数,然后创建为一个变量为 decimal ,赋值18 换种说法:定义一个整型变量 decimal 并赋值为 18,指定要转换的十进制数。
  4. 创建一个名为 binary 的整型数组,用于存储二进制数的每一位。通过 [] 指定数组大小为 32 个元素,可以用来存储较长的二进制数 换种说法:定义一个数组 binary ,用于存储二进制数的每一位。最大为32位
  5. 创建一个名为 i 的变量,并赋值为 0 ,用于循环控制、索引数组等需要使用整数计数器的场景。 换种说法:初始化变量 i 为 0,作为数组索引
  6. while 是 C 语言中的一个循环控制语句,用于在满足指定条件时重复执行一段代码块。在这个例子中,循环条件为 decimal > 0decimal 大于0时程序会一直执行 换种说法:进入 while 循环,判断 decimal 是否大于 0
  7. binary[i] = decimal % 2; 的作用是将变量 decimal除以 2 的余数赋值给数组 binary 的第 i 个元素。这样可以将 decimal 的二进制表示的每一位存储在数组 binary 中的对应位置。 换种说法:在循环中,将 decimal2 求余并将结果存储到 binary 数组中的第 i
  8. 将变量 decimal 除以 2 的结果赋值给自身,相当于将 decimal 右移一位,这个操作可以在将十进制数转换为二进制数时用于获取二进制数的下一位。 /= 是 C 语言中的除并赋值运算符,等于 decimal = decimal / 2;
  9. i++ 是 C 语言中的自增操作符,用于将变量 i 的值增加 1。它等价于 i = i + 1; 或者 i += 1; 。通过这行代码,可以使循环控制变量 i 每次循环后自增,以便在数组中逐个存储二进制数的每一位。这样,每次循环后 binary[i] 就会存储下一个二进制位的值。 换种说法: i++ 是一个自增运算符,用于将变量 i 的值加一
  10. }: 循环重复上述步骤,直到 decimal 不大于 0循环结束
  11. 输出 Binary: ,表示二进制数
  12. 这行代码是一个 for 循环,用于逆序输出二进制数的每一位。 int j = i - 1 在循环开始前,初始化循环变量 j 的值为 i - 1 。这里使用 i - 1 是因为在之前的循环中, i 已经自增过了,所以需要减去 1 才能正确对应数组最后一位的索引。 j >= 0 循环条件,当 j 大于等于 0 时继续循环。这保证了循环会一直进行,直到遍历完所有的二进制位。 j-- 每次循环结束后,将 j 自减 1,使其逐渐减小,实现逆序的效果。 简单来说 for (int j = i - 1; j >= 0; j--) { 就是开始一个倒序循环,从最高位到最低位迭代输出二进制数。
  13. printf("%d", binary[j]); 按照倒序顺序输出 binary[j] 中的二进制数值。
  14. 循环结束
  15. 输出换行符
  16. return 0; 返回 0 表示程序结束

程序

用C语言创建一个十进制数转换为二进制数

说明

  1. decimalToBinary 函数中,定义一个整型数组 binary 来存储二进制数,数组长度为 32,足够存储大多数整数的二进制表示。
  2. 定义一个变量 i 作为数组 binary 的索引,初始化为 0。
  3. 进入一个 while 循环,判断输入的十进制数 decimal 是否大于 0。
  4. 在循环中,使用运算 % 计算 decimal 对 2 取余数,并将结果存储到 binary 数组的第 i 位上。
  5. 使用整除运算 /decimal 右移一位,等效于将 decimal 除以 2,以便更新 decimal 的值。
  6. 自增 i 以便在下一次循环中存储下一个二进制位。
  7. 循环结束后,通过 printf 函数输出提示信息 "二进制数为: "。
  8. 进入一个 for 循环,从数组 binary 的最后一位开始,逆序输出每一位的值。
  9. 最后使用 printf("\n") 输出换行符
  10. main 函数中,声明一个整型变量 decimal ,用于接收用户输入的十进制数。
  11. 使用 printf 函数提示用户输入一个十进制数。
  12. 使用 scanf 函数读取用户输入的十进制数,并将其赋值给变量 decimal
  13. 调用 decimalToBinary 函数,传入 decimal 的值,实现将十进制数转换为二进制并输出的功能。
  14. 返回 0,表示程序正常终止。

程序

0

评论 (2)

取消
  1. 头像
    Elysiane
    Windows X64 · QQ Browser

    话说这文章是自己写的吗,我也在学编程

    回复
    1. 头像
      M. 作者
      Android · Google Chrome
      @ Elysiane

      文章是自己写的哦

      回复