将十进制数18转换为二进制
- 将18除以2,得商9,余数为0
- 将9除以2,得商4,余数为1
- 4除以2,得商2,余数为0
- 2除以2,得商1,余数为0
- 1除以2,得商0,余数为1
将余数从下往上排列,得到二进制数10010
同样的,在C语言中,可以通过代码实现二进制数的转换,例如:
说明
- 引入头文件
stdio.h
使得程序能够使用其中定义的函数和宏。例如,printf()
函数用于向标准输出设备打印输出 int main() {}
主函数的开始,程序从这个位置开始执行int
是一种基本数据类型,用于表示整数,然后创建为一个变量为decimal
,赋值18 换种说法:定义一个整型变量decimal
并赋值为 18,指定要转换的十进制数。- 创建一个名为
binary
的整型数组,用于存储二进制数的每一位。通过[]
指定数组大小为32
个元素,可以用来存储较长的二进制数 换种说法:定义一个数组binary
,用于存储二进制数的每一位。最大为32位 - 创建一个名为
i
的变量,并赋值为0
,用于循环控制、索引数组等需要使用整数计数器的场景。 换种说法:初始化变量i
为 0,作为数组索引 while
是 C 语言中的一个循环控制语句,用于在满足指定条件时重复执行一段代码块。在这个例子中,循环条件为decimal > 0
当decimal
大于0时程序会一直执行 换种说法:进入while
循环,判断decimal
是否大于 0binary[i] = decimal % 2;
的作用是将变量decimal
除以2
的余数赋值给数组binary
的第i
个元素。这样可以将decimal
的二进制表示的每一位存储在数组binary
中的对应位置。 换种说法:在循环中,将decimal
对2
求余并将结果存储到binary
数组中的第i
位- 将变量
decimal
除以 2 的结果赋值给自身,相当于将decimal
右移一位,这个操作可以在将十进制数转换为二进制数时用于获取二进制数的下一位。/=
是 C 语言中的除并赋值运算符,等于decimal = decimal / 2;
i++
是 C 语言中的自增操作符,用于将变量i
的值增加 1。它等价于i = i + 1;
或者i += 1;
。通过这行代码,可以使循环控制变量i
每次循环后自增,以便在数组中逐个存储二进制数的每一位。这样,每次循环后binary[i]
就会存储下一个二进制位的值。 换种说法:i++
是一个自增运算符,用于将变量i
的值加一}:
循环重复上述步骤,直到decimal
不大于 0循环结束- 输出
Binary:
,表示二进制数 - 这行代码是一个
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--) {
就是开始一个倒序循环,从最高位到最低位迭代输出二进制数。 printf("%d", binary[j]);
按照倒序顺序输出binary[j]
中的二进制数值。- 循环结束
- 输出换行符
return 0;
返回 0 表示程序结束
程序
#include <stdio.h>
int main() {
int decimal = 18;
int binary[32];
int i = 0;
while (decimal > 0) {
binary[i] = decimal % 2;
decimal /= 2;
i++;
}
printf("Binary: ");
for (int j = i - 1; j >= 0; j--) {
printf("%d", binary[j]);
}
printf("\n");
return 0;
}
{/tabs-pane}
{tabs-pane label="运行成功效果"}
{/tabs-pane}
用C语言创建一个十进制数转换为二进制数
说明
- 在
decimalToBinary
函数中,定义一个整型数组binary
来存储二进制数,数组长度为 32,足够存储大多数整数的二进制表示。 - 定义一个变量
i
作为数组binary
的索引,初始化为 0。 - 进入一个
while
循环,判断输入的十进制数decimal
是否大于 0。 - 在循环中,使用运算 % 计算
decimal
对 2 取余数,并将结果存储到binary
数组的第i
位上。 - 使用整除运算
/
将decimal
右移一位,等效于将decimal
除以 2,以便更新decimal
的值。 - 自增
i
以便在下一次循环中存储下一个二进制位。 - 循环结束后,通过
printf
函数输出提示信息 "二进制数为: "。 - 进入一个
for
循环,从数组binary
的最后一位开始,逆序输出每一位的值。 - 最后使用
printf("\n")
输出换行符 - 在
main
函数中,声明一个整型变量decimal
,用于接收用户输入的十进制数。 - 使用
printf
函数提示用户输入一个十进制数。 - 使用
scanf
函数读取用户输入的十进制数,并将其赋值给变量decimal
- 调用
decimalToBinary
函数,传入decimal
的值,实现将十进制数转换为二进制并输出的功能。 - 返回 0,表示程序正常终止。
程序
#include <stdio.h>
void decimalToBinary(int decimal) {
int binary[32]; // 用于存储二进制数的数组
int i = 0; // 数组索引
while (decimal > 0) {
binary[i] = decimal % 2; // 计算余数,并存储到数组中
decimal /= 2; // 右移一位,更新十进制数
i++; // 索引自增
}
printf("二进制数为: ");
for (int j = i - 1; j >= 0; j--) {
printf("%d", binary[j]); // 逆序输出数组中的二进制位
}
printf("\n");
}
int main() {
int decimal;
printf("请输入一个十进制数: ");
scanf("%d", &decimal);
decimalToBinary(decimal); // 调用函数转换并输出二进制数
return 0;
}
{/tabs-pane}
{tabs-pane label="运行成功效果"}
{/tabs-pane}
话说这文章是自己写的吗,我也在学编程
文章是自己写的哦
叼茂SEO.bfbikes.com
叼茂SEO.bfbikes.com
怎么收藏这篇文章?
想想你的文章写的特别好https://www.ea55.com/
不错不错,我喜欢看 www.jiwenlaw.com
哈哈哈,写的太好了https://www.cscnn.com/
哈哈哈,写的太好了https://www.lawjida.com/
作者的情感表达细腻入微,让人在阅读中找到了心灵的慰藉。
结论升华部分可联系更高维度价值观。
对话设计自然,符合角色身份与情境。
作者的才华横溢,让这篇文章成为了一篇不可多得的艺术品。
结论部分可提出实际应用建议,提升价值。
作者的情感表达细腻入微,让人在阅读中找到了心灵的慰藉。
内容的丰富性和深度让人仿佛置身于知识的海洋,受益匪浅。