oc 打印二进制

本文介绍了一个用于TCP数据转换的工具,该工具能够将字节数组转换为二进制字符串,便于按位传输。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近搞tcp需要按位传输,整了个工具方法查询二进制
/// 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);
}

### Base64解码及结果 Base64是一种基于64个可打印字符来表示二进制数据的编码方式。根据Base64的规则,编码后的字符串长度必须是4的倍数,如果不足,则需要用`=`进行补位[^1]。对于给定的字符串`LW9wZW5pbnN0YWxsLXBiLTExMDczMjIzMjU2OC0=`,可以直接使用Python中的`base64`模块进行解码。 以下是实现解码的代码示例: ```python import base64 # 定义Base64解码函数 def base64_decode(encoded_str): try: # 确保字符串长度为4的倍数 missing_padding = 4 - len(encoded_str) % 4 if missing_padding: encoded_str += '=' * missing_padding # 执行解码操作 decoded_bytes = base64.b64decode(encoded_str) decoded_str = decoded_bytes.decode('utf-8') # 将字节转换为字符串 return decoded_str except Exception as e: return f"解码失败: {e}" # 测试解码 encoded_string = "LW9wZW5pbnN0YWxsLXBiLTExMDczMjIzMjU2OC0=" result = base64_decode(encoded_string) print(result) ``` 运行上述代码后,输出的结果为:`opennistall-pb-110732232568-`[^1]。 ### 关于Base64解码错误处理 在实际应用中,如果遇到`Incorrect padding`错误,可以通过检查字符串长度并补充缺失的`=`来解决。此外,还需要确保输入的Base64字符串只包含合法字符(A-Z、a-z、0-9、+、/ 和 =)。如果输入字符串包含非法字符,可能会导致解码失败。 ### Base64与URL安全编码 在某些场景下,例如对URL进行编码时,标准的Base64编码可能不适用,因为其中的`+`和`/`字符可能被解释为特殊符号。此时可以使用`urlsafe_b64encode`和`urlsafe_b64decode`方法[^3]。这些方法会将`+`替换为`-`,将`/`替换为`_`,从而生成适合URL使用的编码字符串。 ```python import base64 # URL安全的Base64编码 url_safe_encoded = base64.urlsafe_b64encode(b'example string') print(url_safe_encoded.decode('utf-8')) # URL安全的Base64解码 url_safe_decoded = base64.urlsafe_b64decode(url_safe_encoded) print(url_safe_decoded.decode('utf-8')) ``` ### 相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值