`

进制,编码解码,协议瞎扯淡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被高速破解的真相告白

    PHP实现多线程多进程

    教会你PHP怎么实现多线程实现多进程,网上很多中文的是瞎扯淡,这个是英文的,希望对你有所帮助

    Android中Progress的简单实例

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

    产品经理创业,抓不住机遇都是扯淡

    以下是小编整理的本次讲座的主要内容:...除此之外,最最基本的要求就是在原来的公司里面独立负责过1-2个公司里比较重要的产品。第二点是带过一个团队,具备一定的管理能力。相对于做技术、做开发的人来说,作为产品经

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

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

    浅析函数声明和函数表达式——函数声明的声明提前

    前两天班级聚会,除了吃喝玩乐就是睡觉扯淡,甚是喜悦,真是独乐乐不如众乐乐啊。 PS:毕业的或即将毕业的有时间能聚就聚吧,毕了业以后属于自己的时间能聚到一块儿可就少太多了。 现在有点时间来看点东西总结些东西...

    java多线程

    1、多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓"知其然知其所以然","会用"只是"知其然","为什么用"才是"知其所以然",只有...

    sata xp 解决办法

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

    素书译文~(白话直译)

    简洁明了,没有多余的扯淡!

    为啥 redis 使用跳表(skiplist)而不是使用 red-black?1

    之前所有的答案都不太靠谱(完全扯淡)请看开发者说的,他为什么选用skiplist The Skip listThere are a few reasons:1)

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

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

    SimHydraulics

    SimHydraulics液压仿真资料,这个网站真扯淡

    解决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 其他纯属扯淡.最好别效仿.

Global site tag (gtag.js) - Google Analytics