`

进制,编码解码,协议瞎扯淡1

 
阅读更多

分别悟出了进制,编码解码,协议是计算机水平进步的一个个阶梯。


进制和编码解码是密切相关的,其中最重要的是二进制和十六进制。二进制的重要性不言而喻,但是为什么十六进制如此重要呢?为什么十进制不取代十六进制呢?


我希望你使用过例如 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
2
2
分享到:
评论

相关推荐

    煎蛋-扯淡小程序-搜索网站

    【煎蛋-扯淡小程序-搜索网站】是一个以娱乐、趣味和信息分享为主题的小程序,主要功能是提供一个轻松的在线平台,用户可以在这里搜索到各种有趣的资讯、图片和话题。这个小程序的设计理念是将日常的琐碎事物变得有趣...

    无线加密已是扯淡_WPA被高速破解的真相告白

    无线加密已是扯淡_WPA被高速破解的真相告白

    Android中Progress的简单实例

    Android中Progress网上的demo都是瞎扯淡,当然,你们也可以认为我的demo是瞎扯淡,因为,毕竟要理解别人的思路,很头疼,主要还是知道思路,然后一步一步慢慢来。今天我讲的是Progress的实现,如果看了我之前的博客,...

    推荐使用计算机组成原理任国林旧版课件PPT.zip

    1. **数制转换**:二进制、八进制、十进制和十六进制之间的转换是计算机科学的基础,因为计算机内部所有数据都以二进制形式表示。 2. **逻辑运算**:包括与、或、非、异或等基本逻辑操作,这些运算是数字电路设计的...

    CTF-python像素画图工具

    1. **图像基本概念**:图像由像素组成,每个像素包含红、绿、蓝(RGB)三个颜色通道的数值。通过调整这些数值,我们可以改变像素的颜色,从而创建或修改图像。 2. **PIL库的导入与使用**:首先,你需要导入PIL库,...

    拉新、留存、促活?没做好用户体验都是扯淡!

    现在的运营越来越不好做,方法虽然推陈出新多的很,但是同质化也越来越严重,但运营的目的却始终没变。其实我们做运营也无非就是三件事,拉新、留存、促活,但也就是这三件事却也难道了万千的运营狗们,那么究竟怎样...

    史上最全外贸人士询盘回复必看秘籍.docx

    如果是个Manager,你就得注意了,身份不对等没事,关键人家Manager没空和你瞎扯淡,于是乎你的回复中至少得把人家要的信息给全了,而且最好能给足150%,把他没想到的部分也给上,比如人家问你price,你把shipping啥...

    sata xp 解决办法

    网上说的xp加sata的办法都比较扯淡,找sata xp 10个里有9个不是,自己做sata的启动盘,比较复杂,我尝试做了,oem法是不行了,就省升级驱动了,没试,因为没有意义,用简单方法解决何必那么麻烦呢,反正我是懒人!...

    最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料

    字符编码与二进制 字符编码的区别与介绍 用户交互程序 if else流程判断 while 循环 while 循环优化版本 for 循环及作业要求 第2周 本节鸡汤 模块初识 pyc是什么 python数据类型 bytes数据类型 列表的使用 元组与...

    spn加密算法

    spn加密算法,课程设计必须。说多了都是扯淡

    解决SQL Server 2008提示评估期已过

    SQL2008扯淡的评估期已过解决方案,

    Visual+c#课程设计

    非常好的一个C#学生宿舍管理系统!推荐下载!什么鸡巴系统,描述都有字数限制1!扯淡!

    使用最新PyPy代替CPython,加速Python执行

     先不扯淡了,知道你们可能听不懂。拐入正题。  官网:https://www.pypy.org/  最新版本的下载地址:http://buildbot.pypy.org/mirror/pypy3.6-v7.3.0rc3-win32.zip ,建议使用迅雷等下载工具下载。  下载完了直接...

    目前最高性能的SocketAsyncEventArgs 实例

    SocketAsyncEventArgs 单机测试成功突破 6W,59999 还是 100%连接上去的 所以估计最高性能可能达到10W以上 ...MSND 的 SocketAsyncEventArgs 除了SocketAsyncEventArgsPOOL 和内存Manager 其他纯属扯淡.最好别效仿.

    火星字转换软件 V1.01

    而在帖子标题里,也时不时能看到诸如“わ-┈>>冇没冇个会扯淡啲出来..む゛。↗”(有没有个会扯淡的出来)、“《囘忆寔孤独の諘哯》”(回忆是孤独的表现)这样的火星文标题。 这些火星文用符号、繁体字、日文...

Global site tag (gtag.js) - Google Analytics