在C中保存16位二进制数据类型

时间:2014-07-29 14:29:45

标签: c arrays types binary

如何在C中的数组中存储16位二进制文​​件?我必须使用什么数据类型来制作阵列? long int,float,char? 恩。 data = {'1001111101110010','1001101011010101','1000000011010010'}

2 个答案:

答案 0 :(得分:4)

stdint.h中,以下是typedef

  

uint16_t

这个整数类型的宽度恰好是16位。您可以根据自己的需要使用它:

#include <stdint.h>

uint16_t arr[NUM_ELEMENTS] = {...};

答案 1 :(得分:2)

我所知道的唯一可以存储类似内容的类型:

{&#39; 1001111101110010&#39;,&#39; 1001101011010101&#39;,&#39; 1000000011010010&#39;}

是一个char数组:

char *binaryArray[] = {"1001111101110010", "1001101011010101","1000000011010010"}; 

我很确定你想要什么。

有几种类型可用于保存 数组位(但它们不是以这种方式呈现);
unsigned short
short
wchar_t
unsigned __int16
(等人)都有16位。 其他可行的数据类型 Look here

选择任何可行的,并创建 C位字段 的数组。在C中,这可能看起来像:

typedef struct
{
    //type              member name    field width (number of bits in field)
      unsigned short    bits           : 16;
}BIT;    

BIT bit[10];  //array of 10 bit fields, each with capacity for 16 bits    

注意:

如下的作业:

bit[0].bits = 40818;  //0x9F72 //1001111101110010   
bit[1].bits = 39637;  //0x9AD5 //1001101011010101   
bit[2].bits = 32978;  //0x08D2 //1000000011010010   

不看二进制,但它是平等的。

您可以在 this example

中详细了解位字段