如何将字符串编码成二进制?

本文介绍两种编程方法,将文字信息转化为0和1的ASCII码表示形式,适用于想在七夕用独特方式表达爱意的人们。一种是使用C语言通过位移操作实现,另一种则是用Python采用标准转换方法。

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

七夕将至,想用0和1来表达爱意吗?下面两个程序正好帮忙,可以将一个字符串转换为0和1表示的ascii码,不过目前对英文有效,中文没试。

一种是用C语言写的,通过移位来实现。


#include <stdio.h>
#include <string.h>

int main(int argc, char* argv[])
{
    char *p = argv[1];
    char c;
    int len = strlen(p);

    while(len--)
    {   
        c = *p++;
        int i;
        for (i = 0; i < 8; ++i)
        {   
            if (c & 0x80)
                printf("1");
            else
                printf("0");
            c <<= 1;
        }   
        printf(" ");
    }   
    printf("\n");
    return 0;
}

另一种是用python写的,是比较正统的转换方法,即“辗转相除法”

#!/usr/bin/env python

import sys 

def bin(x):
    result = ''
    x = int(ord((x)))
    while x > 0:
        mod = x % 2 
        x /= 2
        result = str(mod) + result
    while len(result) < 8:
        result = '0' + result
    return result

def string2bin(s):
    bins = []
    for c in s:
        bins.append(bin(c))
    return bins


if __name__ == '__main__':
    bins = string2bin(sys.argv[1])
    for bin in bins:
        print bin,



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值