我希望能够将String(带有单词/字母)转换为其他形式,如二进制.我该怎么做呢 我在BLUEJ(Java)编码.谢谢
我有兴趣接受一个角色,
c = 'c' # for example
hex_val_string = char_to_hex_string(c)
print hex_val_string
Run Code Online (Sandbox Code Playgroud)
输出:
63
Run Code Online (Sandbox Code Playgroud)
这个最简单的方法是什么?任何预定义的字符串库?
正在阅读Joel Spolsky关于字符编码的'The Absolute Minimum'.据我所知,ASCII是一种代码点+编码方案,在现代,我们使用Unicode作为代码点方案,使用UTF-8作为编码方案.它是否正确?
我正在教我的弟弟学习工程学.我向他解释了不同的数据类型实际存储在内存中的方式.我向他解释了签名/无符号数字背后的物流和十进制数字的浮点位.当我告诉他C中的char类型时,我还带他通过ASCII代码系统,以及char也被存储为1字节数.
他问我为什么'A'被给予ascii代码65而不是其他什么?同样,为什么'a'具体代码为97?为什么在大写字母和小写字母之间存在6个ascii代码的差距?我不知道这个.你能帮助我理解这一点吗,因为这也给我带来了很大的好奇心.到目前为止,我从未找到任何讨论过该主题的书.
这背后的原因是什么?ASCII码是否逻辑组织?
我现在这样做:
[root@~]# echo Aa|hexdump -v
0000000 6141 000a
0000003
[root@~]# echo -e "\x41\x41\x41\x41"
AAAA
Run Code Online (Sandbox Code Playgroud)
但它并不像我想的那样完全表现,
十六进制形式Aa应该是4161,但输出是6141 000a,这似乎没有意义.
当执行十六进制到ascii时,是否有另一个实用程序,所以我不需要前缀\x?
和我一起工作的实习生向我展示了他在计算机科学方面考试的关于字节序问题的考试.有一个问题显示ASCII字符串"My-Pizza",学生必须显示该字符串将如何在小端计算机的内存中表示.当然,这听起来像一个技巧问题,因为ASCII字符串不受端序问题的影响.
但令人震惊的是,实习生声称他的教授坚持认为该字符串将表示为:
P-yM azzi
Run Code Online (Sandbox Code Playgroud)
我知道这不可能是正确的.在任何机器上都不能像ASCII字符串那样表示ASCII字符串.但显然,教授坚持这样做.所以,我写了一个小C程序并告诉实习生把它交给他的教授.
#include <string.h>
#include <stdio.h>
int main()
{
const char* s = "My-Pizza";
size_t length = strlen(s);
for (const char* it = s; it < s + length; ++it) {
printf("%p : %c\n", it, *it);
}
}
Run Code Online (Sandbox Code Playgroud)
这清楚地表明字符串在内存中存储为"My-Pizza".一天后,实习生回到我身边,告诉我教授现在声称C正在自动转换地址,以正确的顺序显示字符串.
我告诉他他的教授很疯狂,这显然是错的.但是为了检查我自己的理智,我决定在stackoverflow上发布这个,所以我可以让其他人确认我在说什么.
所以,我问:谁在这里?
我在python脚本中下载了一个网页.在大多数情况下,这很好.
但是,这个有一个响应标题:GZIP编码,当我试图打印这个网页的源代码时,它在我的putty中有所有符号.
如何将此解码为常规文本?