ios打印二进制数据区

因为最近搞视频解码,经常需要打印数据查看,所以写了一个工具类

没有什么优化,仅仅为了查看二进制数据方便

以二进制方式打印数组
///data 待打印二进制
/// length待打印长度
-(void)bytearrtostr:(Byte *)data length:(int)length
{
    char char_1 = '1',char_0 = '0';
    char *chars = malloc(length*8+1);
    chars[length*8] = '\n';
    for(int i=0;i<length;i++)
    {
        Byte bb = data[i];
        for(int j=0;j<8;j++)
        {
            if(((bb>>j)&0x01) == 1)
            {
                chars[i*8+j] = char_1;
            }else{
                chars[i*8+j] = char_0;
            }
        }
        char temp = 0;
        temp =  chars[i*8+0];chars[i*8+0] = chars[i*8+7];chars[i*8+7] = temp;
        temp =  chars[i*8+1];chars[i*8+1] = chars[i*8+6];chars[i*8+6] = temp;
        temp =  chars[i*8+2];chars[i*8+2] = chars[i*8+5];chars[i*8+5] = temp;
        temp =  chars[i*8+3];chars[i*8+3] = chars[i*8+4];chars[i*8+4] = temp;
    }
    NSString *string = [NSString stringWithCString:chars encoding:NSUTF8StringEncoding];
    NSLog(@"binnary string = %@",string);
}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在C++中,可以使用二进制文件来存储二进制数据,例如图片、音频、视频等等。下面是一个简单的例子,演示如何将二进制数据写入文件和从文件中读取二进制数据: ``` #include <iostream> #include <fstream> using namespace std; int main() { // 将二进制数据写入文件 char data[] = {0x12, 0x34, 0x56, 0x78}; ofstream outfile("data.bin", ios::binary); outfile.write(data, sizeof(data)); outfile.close(); // 从文件中读取二进制数据 char buffer[4]; ifstream infile("data.bin", ios::binary); infile.read(buffer, sizeof(buffer)); infile.close(); // 打印二进制数据 for (int i = 0; i < sizeof(buffer); i++) { cout << hex << (int)buffer[i] << " "; } cout << endl; return 0; } ``` 在上面的例子中,我们将一个长度为4的char数组(即4个字节)作为二进制数据,写入名为“data.bin”的文件中。我们使用了ofstream类来打开文件,并使用了ios::binary标志来指示文件是以二进制模式打开的。我们使用了write()方法将数据写入文件中,并使用了close()方法关闭文件。 接下来,我们从文件中读取二进制数据。我们创建了一个长度为4的char数组作为缓冲,使用了ifstream类来打开文件,并使用了ios::binary标志来指示文件是以二进制模式打开的。我们使用了read()方法将数据读取到缓冲中,并使用了close()方法关闭文件。 最后,我们打印了缓冲中的数据,使用了hex标志来指示以十六进制格式打印数据。 需要注意的是,如果要存储的二进制数据较大,可能需要使用更高级的数据库系统,例如MySQL或MongoDB。这些数据库系统可以存储二进制数据,并提供了丰富的API和查询语言来操作数据
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值