分别悟出了进制,编码解码,协议是计算机水平进步的一个个阶梯。
进制和编码解码是密切相关的,其中最重要的是二进制和十六进制。二进制的重要性不言而喻,但是为什么十六进制如此重要呢?为什么十进制不取代十六进制呢?
我希望你使用过例如 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被高速破解的真相告白
Android中Progress网上的demo都是瞎扯淡,当然,你们也可以认为我的demo是瞎扯淡,因为,毕竟要理解别人的思路,很头疼,主要还是知道思路,然后一步一步慢慢来。今天我讲的是Progress的实现,如果看了我之前的博客,...
1. **数制转换**:二进制、八进制、十进制和十六进制之间的转换是计算机科学的基础,因为计算机内部所有数据都以二进制形式表示。 2. **逻辑运算**:包括与、或、非、异或等基本逻辑操作,这些运算是数字电路设计的...
1. **图像基本概念**:图像由像素组成,每个像素包含红、绿、蓝(RGB)三个颜色通道的数值。通过调整这些数值,我们可以改变像素的颜色,从而创建或修改图像。 2. **PIL库的导入与使用**:首先,你需要导入PIL库,...
现在的运营越来越不好做,方法虽然推陈出新多的很,但是同质化也越来越严重,但运营的目的却始终没变。其实我们做运营也无非就是三件事,拉新、留存、促活,但也就是这三件事却也难道了万千的运营狗们,那么究竟怎样...
如果是个Manager,你就得注意了,身份不对等没事,关键人家Manager没空和你瞎扯淡,于是乎你的回复中至少得把人家要的信息给全了,而且最好能给足150%,把他没想到的部分也给上,比如人家问你price,你把shipping啥...
网上说的xp加sata的办法都比较扯淡,找sata xp 10个里有9个不是,自己做sata的启动盘,比较复杂,我尝试做了,oem法是不行了,就省升级驱动了,没试,因为没有意义,用简单方法解决何必那么麻烦呢,反正我是懒人!...
字符编码与二进制 字符编码的区别与介绍 用户交互程序 if else流程判断 while 循环 while 循环优化版本 for 循环及作业要求 第2周 本节鸡汤 模块初识 pyc是什么 python数据类型 bytes数据类型 列表的使用 元组与...
spn加密算法,课程设计必须。说多了都是扯淡
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 其他纯属扯淡.最好别效仿.
而在帖子标题里,也时不时能看到诸如“わ-┈>>冇没冇个会扯淡啲出来..む゛。↗”(有没有个会扯淡的出来)、“《囘忆寔孤独の諘哯》”(回忆是孤独的表现)这样的火星文标题。 这些火星文用符号、繁体字、日文...