如何在C中的数组中存储16位二进制文件?我必须使用什么数据类型来制作阵列? long int,float,char? 恩。 data = {'1001111101110010','1001101011010101','1000000011010010'}
答案 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
中详细了解位字段