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

来源:互联网 发布:炉石传说淘宝金币 编辑:程序博客网 时间:2024/05/18 02:27

七夕将至,想用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 pythonimport 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 resultdef string2bin(s):    bins = []    for c in s:        bins.append(bin(c))    return binsif __name__ == '__main__':    bins = string2bin(sys.argv[1])    for bin in bins:        print bin,



原创粉丝点击