为了了解支付宝APP的源码结构,我们可以使用class-dump-z工具来分析支付宝二进制。
1、下载配置class_dump_z
前往https://code.google.com/p/networkpx/wiki/class_dump_z,下载tar包,然后解压配置到本地环境:
继续阅读 »
Question
Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight).
For example, the 32-bit integer ’11' has binary representation 00000000000000000000000000001011, so the function should return 3.
解说
这道题的意思是统计32位整数二进制格式下的‘1’的个数。
more
Solution
rig
继续阅读 »
android界面一般采用Xml编写,与图片资源结合
如果想"借鉴"别人的安卓界面,可以下载别人的apk
解压,然后图片资源可以找出来
xml文件也可以看到,不过都是二进制,需要反编译
可以使用如下办法进行反编译
下载AXMLPrinter2.jar
下载BatchAXPrinter.BIN.zip 下载之后解压,更改后缀为.jar
在控制台进入到解压后apk的目录,输入java -jar BatchAXPrinter.jar AXMLPrinter2.jar ../res/layout/
其中 ../res/layout/是你要反编译的XML文件的根目录。即可完成批量反编译xml文件
再加上之前得到的图片资源,安卓界面"借鉴
继续阅读 »
从今天起至10月11日,持续连载。
关于计算机
ENIAC
出现于1946年。
是最早的计算机。
是电子管计算机。
其他
阶码,即浮点数的指数部分。
IPv6是128位的。
求补码:二进制下:各位取反再加1 或 把原码减1再取反。
关于算法
各种排序的时间复杂度
快速排序:$O(nlogn)$,最坏为$O(n^2)$。
冒泡排序:$O(n^2)$。
归并排序:$O(nlogn)$。
计数排序:$O(n)$。
插入排序:$O(n^2)$。
关于树
完全二叉树 vs 满二叉树:完全二叉树最后一层不一定满。
前序遍历:中左右;中序遍历:左中右;后序遍历:左右中。
节点数
继续阅读 »
介绍
所谓树状数组,就是将线性的数组预处理成树状的结构以降低时间复杂度。先来看一幅经典的图:
其中的a数组为原生数组,c数组为辅助数组,计算方式为: $$c_1=a_1——{(1)}{10}={(1)}_2$$ $$c_2=a_2+c_1——{(2)}{10}={(10)}_2$$ $$\ldots$$ 不难发现,c[k]存储的实际上是从k开始向前数k的二进制表示中右边第一个1所代表的数字个元素的和。这样写的好处便是可以利用位运算轻松计算sum。上代码。
Code
var
n, i: longint;
a, c: array [1..10000] of longint;
//计算x最右边的1所代表的数字。
继续阅读 »
我们都知道,任何信息在计算机中都是以二进制01的形式存在,通过不同的01组合,可以表达出不同的信息,这就是编码了。我们通常所说的字节(byte),就是一个最基本的单元,它由8个0或者1来表示,可以组合出256种状态,如果每一种状态代表一个符号,那么一个字节可以编码出256个不同的符号,从00000000到11111111。
继续阅读 »