如何将二进制整数写入二进制文件| C

时间:2014-08-26 10:28:54

标签: c binaryfiles fwrite

例如: 如果我有这个整数10101011 我想将10101011写入1字节的二进制文件

这样的事情,我想但它不能正常工作

FILE *f;
int n=10101011;
f=fopen("file","wb");
Fwrite(&n,1,1,f);

  

为什么你总是这样做-1我搜索,我找不到那些东西   帮帮我!!


2 个答案:

答案 0 :(得分:0)

我假设10101011是您要编写的整数值的二进制表示。在这种情况下,您可以使用unsigned char,因为char的大小为1:

FILE *f;
unsigned char c = 0xAB; // Equal to the binary number 10101011
f=fopen("file","wb");
fwrite(&c,1,1,f);

答案 1 :(得分:0)

似乎您想将二进制转换为十进制:

#include <stdio.h>

int main(void)
{
    unsigned char c = 0;
    int x = 10101011;
    int rem, i;

    for (i = 0; i < 8; i++) {
        rem = x % 10;
        if (rem == 1) {
            c |= 1U << i;
        }
        x /= 10;
    }
    printf("0x%x\n", c);
    return 0;
}

输出:

0xab

请注意,x

不能超过8位数