【发布时间】:2021-04-26 07:45:44
【问题描述】:
我有类似int i=10 的东西,它可能是i=1000 或i=10400233
我喜欢将存储在int i=10//,etc. 中的任意数字的每一位存储在一个数组中。有没有可能在C
我只是不明白如何找到bits 和int 变量之间的关系以及其中存储的数字
示例输入
int i=10; // 我想要 int array[]={1,0,1,0};
int i=15; // 我想要 int array[] ={1,1,1,1};
int i=21 // 我想要 int array[] ={1,0,1,0,1};
【问题讨论】:
-
值为
0的位也是位,因此所有int将具有相同数量的位(在给定的编译二进制中)。 -
您能否重新表述和/或澄清问题,因为它不清楚。也许给出一些示例输入的结果。但通常提取位 X 将是
(i >> X) & 1 -
@JoachimSauer 你的意思是它根本不可能,因为没有办法找到多少位代表一个数字。如果我告诉我的系统
printf("%d\n",sizeof(int));打印4 -
我认为第一条评论是说每个
int值的位数是相同的。它是sizeof(int)*8。 -
所以您希望所有有效位都避免前导零?
标签: c