分别悟出了进制,编码解码,协议是计算机水平进步的一个个阶梯。
进制和编码解码是密切相关的,其中最重要的是二进制和十六进制。二进制的重要性不言而喻,但是为什么十六进制如此重要呢?为什么十进制不取代十六进制呢?
我希望你使用过例如 WinHex 或者 UltraEdit的十六进制模式 打开过文件,这样你会更容易理解我在扯什么淡。
下面我来回答“为什么十进制不取代十六进制呢?”
答案是二进制更容易转化为十六进制,同时最重要的是二进制和十六进制之间非常完美的对齐。
下面我来详细的解释一下这个答案。从学计算机的那天开始,老师就告诉我们在计算机里面,所有的英文字母都对应到一个数字编码,这就是ASCII码(American Standard Code for Information Interchange)。ASCII码是很久很久以前(1968年)制定的。它只使用了一个8位字节中的低7位,总共是127个编码位。
好的,8位字节如下显示 0000,0000 到 1111,1111 ,转化为10进制就是0到256,转化为16进制就是00到EE。很显然10进制的表示不方便于对齐,就算你把10进制都强制格式化为000到256,需要占3个位置。明显没有16进制天生的优雅。
截个图给大家欣赏一下,如下图:
理解了上面的问题,我们就可以继续讨论编码解码了。编码解码是非常重要的计算机基础,也是加密解密的基础。
继续上面关于ASCII码的讨论,前面说过,“ASCII码总共是127个编码位”,也就是说,ASCII码只表示了127个字符,这127个字符中还有大约33个控制字符是看不见的,比如空格,换行之类的不可见字符。
为了加深理解,我们来做个试验:
写一个java类EncodeTest.java
package depeng.test;
public class EncodeTest {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
使用WinHex 或者 UltraEdit的十六进制模式 打开EncodeTest.java,到网上找一份ASCII码的列表,对照这份ASCII码列表,看看你输入的"Hello World!"是如何在计算机中编码的。
下面将EncodeTest.java编译为EncodeTest.class,使用WinHex 或者 UltraEdit的十六进制模式 打开EncodeTest.class,上下求索,很容易看到"Hello World!",修改其中的"Hello World!"为"Hello Encode!",运行一下,发现你成功编辑了字节码。
如图2所示:
至此,只是编码解码的简单入门,后面关于乱码的形成与解决方案将更加精彩。
- 大小: 10.3 KB
- 大小: 22.9 KB
分享到:
相关推荐
无线加密已是扯淡_WPA被高速破解的真相告白
教会你PHP怎么实现多线程实现多进程,网上很多中文的是瞎扯淡,这个是英文的,希望对你有所帮助
Android中Progress网上的demo都是瞎扯淡,当然,你们也可以认为我的demo是瞎扯淡,因为,毕竟要理解别人的思路,很头疼,主要还是知道思路,然后一步一步慢慢来。今天我讲的是Progress的实现,如果看了我之前的博客,...
以下是小编整理的本次讲座的主要内容:...除此之外,最最基本的要求就是在原来的公司里面独立负责过1-2个公司里比较重要的产品。第二点是带过一个团队,具备一定的管理能力。相对于做技术、做开发的人来说,作为产品经
现在的运营越来越不好做,方法虽然推陈出新多的很,但是同质化也越来越严重,但运营的目的却始终没变。其实我们做运营也无非就是三件事,拉新、留存、促活,但也就是这三件事却也难道了万千的运营狗们,那么究竟怎样...
前两天班级聚会,除了吃喝玩乐就是睡觉扯淡,甚是喜悦,真是独乐乐不如众乐乐啊。 PS:毕业的或即将毕业的有时间能聚就聚吧,毕了业以后属于自己的时间能聚到一块儿可就少太多了。 现在有点时间来看点东西总结些东西...
1、多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓"知其然知其所以然","会用"只是"知其然","为什么用"才是"知其所以然",只有...
网上说的xp加sata的办法都比较扯淡,找sata xp 10个里有9个不是,自己做sata的启动盘,比较复杂,我尝试做了,oem法是不行了,就省升级驱动了,没试,因为没有意义,用简单方法解决何必那么麻烦呢,反正我是懒人!...
简洁明了,没有多余的扯淡!
之前所有的答案都不太靠谱(完全扯淡)请看开发者说的,他为什么选用skiplist The Skip listThere are a few reasons:1)
字符编码与二进制 字符编码的区别与介绍 用户交互程序 if else流程判断 while 循环 while 循环优化版本 for 循环及作业要求 第2周 本节鸡汤 模块初识 pyc是什么 python数据类型 bytes数据类型 列表的使用 元组与...
SimHydraulics液压仿真资料,这个网站真扯淡
SQL2008扯淡的评估期已过解决方案,
非常好的一个C#学生宿舍管理系统!推荐下载!什么鸡巴系统,描述都有字数限制1!扯淡!
先不扯淡了,知道你们可能听不懂。拐入正题。 官网:https://www.pypy.org/ 最新版本的下载地址:http://buildbot.pypy.org/mirror/pypy3.6-v7.3.0rc3-win32.zip ,建议使用迅雷等下载工具下载。 下载完了直接...
SocketAsyncEventArgs 单机测试成功突破 6W,59999 还是 100%连接上去的 所以估计最高性能可能达到10W以上 ...MSND 的 SocketAsyncEventArgs 除了SocketAsyncEventArgsPOOL 和内存Manager 其他纯属扯淡.最好别效仿.