您的位置:首页 > 其它

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

2012-07-13 17:37 197 查看
七夕将至,想用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,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐