【问题标题】:Represent Unsigned Integer in Binary用二进制表示无符号整数
【发布时间】:2013-11-18 08:32:19
【问题描述】:

如何将无符号整数表示为二进制?

【问题讨论】:

  • Int 值已经是二进制形式。你的意思是在用户输出中?
  • 二进制类型是什么意思?你想打印二进制表示吗?喜欢 00000101 表示 5 吗?
  • 您要创建表示整数的二进制字符串吗?

标签: c binary integer bit-manipulation


【解决方案1】:

要创建某个整数值的字符串表示,您可以使用以下code

#include <stdlib.h>

int main(int argc, char *argv[]) {
  int j;
  unsigned int value = 1024+2048+4096; // some value
  char mask[8*sizeof(unsigned int) + 1] = {0};
  for (j = 0; j < (8*sizeof(unsigned int) + 1); j++) {
    mask[j] = (value << j) & (1 << (8*sizeof(unsigned int)-1)) ? '1' : '0';
  }
  printf("value is b%s\n", mask);
  return 0;
}

【讨论】:

  • 非常感谢迈克尔。
【解决方案2】:

试试这个:

#include<stdio.h>
int main(void) {

int a,i,k=1;
int arr[32]; \\ taken an array of size 32

for(i=0;i <32;i++) 
{
    arr[i] = 0;   \\initialised array elements to zero
}

printf("enter a number\n");
scanf("%d",&a);  \\get input from the user

for(i = 0;i < 32 ;i++)
{
    if(a&k)    \\bit wise and operation
    {
        arr[i]=1;
    }
    else
    {
        arr[i]=0;
    }
    k = k<<1; \\left shift by one place evry time
}
for(i = 31 ;i >= 0;i--)
{
    printf("%d",arr[i]);   \\print the array in reverse
}

return 0;
}

【讨论】:

    猜你喜欢
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    相关资源
    最近更新 更多