735i的最强游戏方法( 四 )


被除数 计算过程 商 余数
120 120/16 7 8
7 7/16 0 7
120转换为16进制 , 结果为:78 。
原码、反码、补码 。
我们已经知道计算机中 , 所有数据最终都是使用二进制数表达 。
我们也已经学会如何将一个10进制数如何转换为二进制数 。
不过 , 我们仍然没有学习一个负数如何用二进制表达 。
比如 , 假设有一 int 类型的数 , 值为5 , 那么 , 我们知道它在计算机中表示为:
00000000 00000000 00000000 00000101
5转换成二制是101 , 不过int类型的数占用4字节(32位) , 所以前面填了一堆0 。
现在想知道 , -5在计算机中如何表示?
在计算机中 , 负数以其正值的补码形式表达 。
什么叫补码呢?这得从原码 , 反码说起 。
原码:一个整数 , 按照绝对值大小转换成的二进制数 , 称为原码 。
比如 00000000 00000000 00000000 00000101 是 5的 原码 。
反码:将二进制数按位取反 , 所得的新二进制数称为原二进制数的反码 。
取反操作指:原为1 , 得0;原为0 , 得1 。(1变0; 0变1)
比如:将00000000 00000000 00000000 00000101每一位取反 , 得11111111 11111111 11111111 11111010 。
称:11111111 11111111 11111111 11111010 是 00000000 00000000 00000000 00000101 的反码 。
反码是相互的 , 所以也可称:
11111111 11111111 11111111 11111010 和 00000000 00000000 00000000 00000101 互为反码 。
补码:反码加1称为补码 。
也就是说 , 要得到一个数的补码 , 先得到反码 , 然后将反码加上1 , 所得数称为补码 。
比如:00000000 00000000 00000000 00000101 的反码是:11111111 11111111 11 111111 11111010 。
那么 , 补码为:
11111111 11111111 11111111 111110101 = 11111111 11111111 11111111 111 11011
所以 , -5 在计算机中表达为:11111111 11111111 11111111 11111011 。转换为十
六进制:0xFFFFFFFB 。
再举一例 , 我们来看整数-1在计算机中如何表示 。
假设这也是一个int类型 , 那么:
1、先取1的原码:00000000 00000000 00000000 00000001
2、得反码:11111111 11111111 11111111 11111110
3、得补码:11111111 11111111 11111111 11111111
可见 , -1在计算机里用二进制表达就是全1 。16进制为:0xFFFFFF 。
注:这段文字来自sofy , 其实16位的东西在c语言上面就详细的很了
这方面的东西大家还嫌不够的话可以找书来仔细研究研究
(偶可省了不少工夫去写了 , 感谢sofy)

文章来自手机修改群:cj20038413
【735i的最强游戏方法】
游戏的减肥法(sofy搜集)
一 减少图片容量

方法1:将多张png图片集成到一张图片上 。
这是最基本也是最有效的减少png图片容量的办法了 。比如你有10张png图片 , 每张10×15 , 现在你可以把它集成到一张100×15或者10×150或者X×X的图片上去 。这张大png图片的容量比10张png图片的总容量小很多 。这是因为省去了9张图片的文件头 , 文件结束数据块等等 , 而且合并了调色板(如果10张图片的调色板恰好相同 , 则省去了9张图片的调色板所占的容量!这是个不小的数字)

方法2:减少图片的颜色数
减少颜色也算是一个方法?我想说的是什么时候减 , 谁去减 。如果游戏完成后发现容量超出 , 此时在用优化工具减少颜色 , 虽然能降低图片容量 , 但图片效果可能就不让你满意了 。所以 , 在美工作图时就要确定使用的颜色数 , 手机游戏使用的是象素图 , 即一个象素一个象素点出来的图像 , 所以预先规定调色板颜色数量是可以办到的 。不过 , 最终使用优化工具也是有用的 , 有时候相差一两种颜色 , 但效果差别并不大 , 容量却可以变小一些 。呵呵 , 减少颜色确实可以算是一种方法 。

推荐阅读