假设我有一个摄氏温度,int tC,我想将其转换为二进制形式,每个位都在一个整数数组 arr[5] 中。我尝试通过两种方法使用余数来检查数字是否有余数。我尝试使用此功能,但它似乎总是一团糟,尽管理论上它确实有效。任何帮助表示赞赏。另外,我可以使用指针,但不太确定在这种特殊情况下如何使用它们。
int main(void)
{
int arr[5];
int tC = 39;
int i;
for(i=0; i<5; i++)
{
if(tC%2==0)
arr[i] = 0;
else
arr[i] = 1;
tC/=2;
}
printf("\n%d\n", arr[5]);
}
最佳答案
只需要一点点改变:
#include<stdio.h>
int main(void)
{
int arr[5];
int tC = 39;
int i;
for(i=4; i>=0; i--)
{
if(tC%2==0)
arr[i] = 0;
else
arr[i] = 1;
tC/=2;
}
for(i=0; i<5; i++)
printf("%d", arr[i]);
}
由于您将二进制值存储在数组中并从 0-4 (<5) 循环 - 值以相反的顺序保存。您只需要从 4-0(包括 0)开始循环。此外,在 printf
中,您正在打印存储在 arr[5]
中的单个位值,这是 UB
因为最后一个索引是 4 - 也,您没有循环打印数组中的所有位值。
关于c - 我如何修改这个将十进制 int 转换为二进制 int 的函数,它的每个数字都在一个数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19752990/