佰推网logo

400-844-5354

当前位置:网站首页 > 新闻动态 > 小程序制作资讯

计算机罪恶的根源在于一个题目

日期:2023-08-28访问量:0类型:小程序制作资讯

​​​​​​​​

前言

这一祸患的根源就在于一个科目……害! ! ! !

我妈的,啧啧……这串什么东西?

原来,这是一串用8位二进制表示的ASCII码!

一、ASCII码及其他编码的发展简介 ASCII(Code for,美国信息交换标准码)

由于计算机是美国人发明的,最早被编码进计算机的只有127个字母,即大小写英文字母、数字和一些符号。 该代码表称为 ASCII 代码。 例如,大写字母A的编码为65。,小写字母z的编码为122。后面的128称为扩展ASCII码。

ASCII 编码:

空格(0)对应的ASCII码为0; 勾号(251)对应的 ASCII 码是 。 如果我们要表示一个空格+复选标记,那么就是0+,但是放在一起,如何“造句”呢? 显然存在混乱,所以:

由于码表中的字符多达255个,人们想到了用八位二进制来表示这些字符。 例如A(65)对应的二进制码是不足8位前面补0,所以。 因此,一个空格+勾可以表示为11011,读取时每八位可以读取一个字符。

2.&GBK(中国人自己的编码)

显然,ASCII码只能显示英文,而不能显示汉字。 当美国佬制造计算机时,他们一定没有想到有一天中国人会使用计算机。 20世纪80年代,计算机进入中国,让专家们很头疼。 啊! 我的中华文化博大精深,常用汉字有数千个。 您无法使用 ASCII 代码表加载它。 然而,我们中国人从来不畏惧困难。 ) 出生于!

后来到了1995年,专家们再次升级,这就是目前中文版计算机的编码:GBK。

计算机罪恶的根源在于一个题目

3.(统一码)

在计算机飞速发展的时代,每个国家都在开发自己的代码,比如中国、日本、韩国的Euc-kr,所以啊,问题就出现了,你写的代码不能在日本终端上运行,是一堆乱码。 这是编码混战的时代。 如何才能做到这一点? 后来是联合国的调解,统一了所有的语言,放到了里面。 这就是万能密码的由来!

二、解决办法

1. 解码ASCII码

其实实现ASCII码的解码非常简单。 首先需要将8位二进制数转换为十进制数,然后使用内置的chr函数将十进制数转换为ASCII码表中对应的字符!

代码如下所示:

print("欢迎使用mc开发的程序!".center(50, '*'),"\n")   # 本人的个性标签
print("请输入你需要解码的code:")
a = input("code:")
li = list(a)    # 先将需要转译的编码由8位二进制码转为列表,便于后面程序的操作
b = []          # 空列表b用于存放解码出来的字符串
m = 0
n = 7
while n <= len(li):
 x = li[m:n+1:1]       # 将列表进行切片处理
 b.append(x)
 m += 9
 n += 9                # 此处用到算法是为了将空格给去掉,每8位跳一次
print(b,len(b))            # 打印b,看看是否出现错误,此处已经实验过,需要的话请取消注释
for i in range(len(b)):
    print(len(b[i]),end="")
print('\n')
print("Please judge it's True or False by 8888......always") # 判断是否出现错误,保证每一个元素b[i]都是8位二进制数以免后面转译的时候出错
print("\n")
print("破译成功***你所破译的编码意思是:")
# 定义一个进制转换并输出ASCII字符函数
def two_translate_ten(x):
    i = 0
    sum = 0
    while i <= 7:
        sum += int(x[i]) * 2**(7-i)
        i += 1
    print(chr(sum),end="")              # 将10进制数转换为对应的ASCII字符并无换行输出
    return 0
j = 0
while j <= len(b)-1:
    x = b[j]
    two_translate_ten(x)
    j += 1                               # 循环调用 two_translate_ten(x)函数
print("\n")
print("感谢使用mc开发的程序!".center(60, '*'))
print("\n")
# for k in range(len(b)):
#     two_translate_ten(b[k])
# 此处代码存在一定的问题,在于切片后的列表内还是一个个小的列表,如果要调用这些小列表里面的数据,就需要进行赋值转换

程序运行演示:

*******************欢迎使用mc开发的程序!******************* 
请输入你需要解码的code:      # 这里直接复制粘贴所需要解码的代码就行了
code:01001100 01101111 01100111 01101001 01100011 00100000 01110111 01101001 01101100 01101100 00100000 01100111 01100101 01110100 00100000 01111001 01101111 01110101 00100000 01100110 01110010 01101111 01101101 00100000 01000001 00100000 01110100 01101111 00100000 01000010 00101110 00100000 01001001 01101101 01100001 01100111 01101001 01101110 01100001 01110100 01101001 01101111 01101110 00100000 01110111 01101001 01101100 01101100 00100000 01110100 01100001 01101011 01100101 00100000 01111001 01101111 01110101 00100000 01100101 01110110 01100101 01110010 01111001 01110111 01101000 01100101 01110010 01100101 00101110
888888888888888888888888888888888888888888888888888888888888888888888
Please judge it's True or False by 8888......always
破译成功***你所破译的编码意思是:
Logic will get you from A to B. Imagination will take you everywhere.
************************感谢使用mc开发的程序!************************

逻辑会带你从A到B。会带你。

(逻辑会带你从A到B,想象力会带你去任何地方)

显然,这就是我们一开始提到的问题的答案!

这段代码需要注意的是,标题给出的代码每8位之间有一个空格,所以必须把空格去掉,可以利用列表的切片功能来实现!

2. 编码ASCII码

其实这个设计是我写完最后一段代码后突发奇想想要实现的! 既然我可以将一段 ASCII 代码解码为一段英文输出,那么我也必须能够将一段英文代码编码为一段 ASCII 代码!

计算机罪恶的根源在于一个题目

代码如下所示:

print("欢迎使用mc开发的程序!".center(50, '*'))   # 本人的个性标签
print("Please write your code:")
x = input("code:")
i = 0
st = []
# 定义一个10进制转二进制的函数
def two_transfer(x):
    a = []
    while x != 0:
        a.append(x%2)
        x =int(x/2)
    a.reverse()
    while len(a) != 8:
        a.insert(0,0)        # 避免二进制数不满足8位码的要求,需要在二进制码前面补0
    st.append(a)
    print(a)
    return st                # 返回st,用于后面的调用
while i <= len(x)-1:
    y = ord(x[i])            # 转为十进制数
    two_transfer(y)          # 调用10进制转二进制函数,将10进制转为2进制数
    i += 1
print("\n")
print("Translating your words into codes is successful,it's (你的代码已编译成功):")
print("\n")
for k in st:
    k.insert(8,' ')          # 加空格
    for i in range(len(k)):
        print ("".join(str(k[i])),end='')   # 将‘’去掉后输出
print("\n")
print("\n","感谢使用mc开发的程序!".center(60, '*'))

为了兼容之前的解码程序,这里我们使用. (8,'') 插入空格

以编码歌曲《星空》的歌词为例:“我们在这里!天空,有太阳的夜晚,你和我,光,双火,在时间和地点点燃,我知道你的名字,我认识你的脸,你的爱和恩典,过去和现在,在内在的空间,我们演奏的歌曲!”

代码运行:

*******************欢迎使用mc开发的程序!*******************
Please write your code:
code:Here we are !Riding the sky,Painting the night with sun,You and I, Mirrors of light,Twin flames of fire,Lit in another time and place,I knew your name,I knew your face,Your love and grace,Past and present now embrace,Worlds collide in inner space,Unstoppable, the song we play
Translating your words into codes is successful,it's (你的代码已编译成功):
01001000 01100101 01110010 01100101 00100000 01110111 01100101 00100000 01100001 01110010 01100101 00100000 00100001 01010010 01101001 01100100 01101001 01101110 01100111 00100000 01110100 01101000 01100101 00100000 01110011 01101011 01111001 00101100 01010000 01100001 01101001 01101110 01110100 01101001 01101110 01100111 00100000 01110100 01101000 01100101 00100000 01101110 01101001 01100111 01101000 01110100 00100000 01110111 01101001 01110100 01101000 00100000 01110011 01110101 01101110 00101100 01011001 01101111 01110101 00100000 01100001 01101110 01100100 00100000 01001001 00101100 00100000 01001101 01101001 01110010 01110010 01101111 01110010 01110011 00100000 01101111 01100110 00100000 01101100 01101001 01100111 01101000 01110100 00101100 01010100 01110111 01101001 01101110 00100000 01100110 01101100 01100001 01101101 01100101 01110011 00100000 01101111 01100110 00100000 01100110 01101001 01110010 01100101 00101100 01001100 01101001 01110100 00100000 01101001 01101110 00100000 01100001 01101110 01101111 01110100 01101000 01100101 01110010 00100000 01110100 01101001 01101101 01100101 00100000 01100001 01101110 01100100 00100000 01110000 01101100 01100001 01100011 01100101 00101100 01001001 00100000 01101011 01101110 01100101 01110111 00100000 01111001 01101111 01110101 01110010 00100000 01101110 01100001 01101101 01100101 00101100 01001001 00100000 01101011 01101110 01100101 01110111 00100000 01111001 01101111 01110101 01110010 00100000 01100110 01100001 01100011 01100101 00101100 01011001 01101111 01110101 01110010 00100000 01101100 01101111 01110110 01100101 00100000 01100001 01101110 01100100 00100000 01100111 01110010 01100001 01100011 01100101 00101100 01010000 01100001 01110011 01110100 00100000 01100001 01101110 01100100 00100000 01110000 01110010 01100101 01110011 01100101 01101110 01110100 00100000 01101110 01101111 01110111 00100000 01100101 01101101 01100010 01110010 01100001 01100011 01100101 00101100 01010111 01101111 01110010 01101100 01100100 01110011 00100000 01100011 01101111 01101100 01101100 01101001 01100100 01100101 00100000 01101001 01101110 00100000 01101001 01101110 01101110 01100101 01110010 00100000 01110011 01110000 01100001 01100011 01100101 00101100 01010101 01101110 01110011 01110100 01101111 01110000 01110000 01100001 01100010 01101100 01100101 00101100 00100000 01110100 01101000 01100101 00100000 01110011 01101111 01101110 01100111 00100000 01110111 01100101 00100000 01110000 01101100 01100001 01111001 
 ************************感谢使用mc开发的程序!************************

可以看到我们已经能够将一段英文转换成ASCII码了!

并且每8个字符之间用空格分隔,可以兼容解码程序。 有兴趣的读者可以尝试一下。

示范:

*******************欢迎使用mc开发的程序!******************* 
请输入你需要解码的code:
code:01001000 01100101 01110010 01100101 00100000 01110111 01100101 00100000 01100001 01110010 01100101 00100000 00100001 01010010 01101001 01100100 01101001 01101110 01100111 00100000 01110100 01101000 01100101 00100000 01110011 01101011 01111001 00101100 01010000 01100001 01101001 01101110 01110100 01101001 01101110 01100111 00100000 01110100 01101000 01100101 00100000 01101110 01101001 01100111 01101000 01110100 00100000 01110111 01101001 01110100 01101000 00100000 01110011 01110101 01101110 00101100 01011001 01101111 01110101 00100000 01100001 01101110 01100100 00100000 01001001 00101100 00100000 01001101 01101001 01110010 01110010 01101111 01110010 01110011 00100000 01101111 01100110 00100000 01101100 01101001 01100111 01101000 01110100 00101100 01010100 01110111 01101001 01101110 00100000 01100110 01101100 01100001 01101101 01100101 01110011 00100000 01101111 01100110 00100000 01100110 01101001 01110010 01100101 00101100 01001100 01101001 01110100 00100000 01101001 01101110 00100000 01100001 01101110 01101111 01110100 01101000 01100101 01110010 00100000 01110100 01101001 01101101 01100101 00100000 01100001 01101110 01100100 00100000 01110000 01101100 01100001 01100011 01100101 00101100 01001001 00100000 01101011 01101110 01100101 01110111 00100000 01111001 01101111 01110101 01110010 00100000 01101110 01100001 01101101 01100101 00101100 01001001 00100000 01101011 01101110 01100101 01110111 00100000 01111001 01101111 01110101 01110010 00100000 01100110 01100001 01100011 01100101 00101100 01011001 01101111 01110101 01110010 00100000 01101100 01101111 01110110 01100101 00100000 01100001 01101110 01100100 00100000 01100111 01110010 01100001 01100011 01100101 00101100 01010000 01100001 01110011 01110100 00100000 01100001 01101110 01100100 00100000 01110000 01110010 01100101 01110011 01100101 01101110 01110100 00100000 01101110 01101111 01110111 00100000 01100101 01101101 01100010 01110010 01100001 01100011 01100101 00101100 01010111 01101111 01110010 01101100 01100100 01110011 00100000 01100011 01101111 01101100 01101100 01101001 01100100 01100101 00100000 01101001 01101110 00100000 01101001 01101110 01101110 01100101 01110010 00100000 01110011 01110000 01100001 01100011 01100101 00101100 01010101 01101110 01110011 01110100 01101111 01110000 01110000 01100001 01100010 01101100 01100101 00101100 00100000 01110100 01101000 01100101 00100000 01110011 01101111 01101110 01100111 00100000 01110111 01100101 00100000 01110000 01101100 01100001 01111001 
888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
Please judge it's True or False by 8888......always
破译成功***你所破译的编码意思是:
Here we are !Riding the sky,Painting the night with sun,You and I, Mirrors of light,Twin flames of fire,Lit in another time and place,I knew your name,I knew your face,Your love and grace,Past and present now embrace,Worlds collide in inner space,Unstoppable, the song we play
************************感谢使用mc开发的程序!************************
Process finished with exit code 0

编码和解码程序兼容!

结语

就算这个问题解决了! 有害....! ! ! 这并不容易!

好的,如有疑问,请留言询问!


TAG标签:小程序解码 

声明:本文来自投稿,不代表佰推网立场,如若转载,请注明出处:http://www.ccsuit.cn/news/show445.html 若本站的内容无意侵犯了贵司版权,请给我们来信,我们会及时处理和回复。

相关新闻

相关案例