天天看点

VC基础知识

1.

怎样看C++代码的汇编代码

例如我想对我的程序优化,想通过看经过编译的汇编代码,在那里看,我用V7.0的

设置一个断点,执行到断点后,右键 转到汇编代码

------------------------------------

2.

反编译,把编译好的程序编程可编辑修改的原文件

软件转换工程这个词自己造的吧

目前就部分java可以实现class与java的反编译

其他基本上没有!

反汇编是把机码以汇编指令的形式表示出来

通常编写程序是利用高级语言如C,Pascal等语言进行编程的,后再经过编译程序生成可以被计算机系统直接执行的执行文件。反汇编即是指将这些执行文件反编译还原成汇编语言或其他高级语言。但通常反编译出来的程序与原程序会存在许多不同,虽然执行效果相同,但程序代码会发生很大的变化,非编程高手很难读懂。

另外,有许多程序也可以进行逆向操作即反编译以求修改,例如Flash的文件生成的SWF文件,也可以被反汇编成Flash原码,但会发现与原程序有很大变化。

其实就是把2进制语言变成人们熟悉的高级语言如c,等等

具个例子,在汇编程序运行时,输入debug -t好像是-t你查一下具体参数吧(debug如何用 还有它的参数是什么意思 http://zhidao.baidu.com/question/1880258.html)

简单地讲,反汇编可以看到软件作者的编程思路,可以破解部分资源,可以将软件汉化等,例如找到它是如何注册的,从而解出它的注册码。

不是所有的软件都能反汇编,有些软件加上了防反汇编的功能,即发现软件受到改变,它就停止工作。亦或有些软件加了“壳”,那就必须选脱“壳”才能反汇编。

程序有的是汇编的,有的是编译的,这个取决于语言。

像vb就是编译类。

像c就是汇编类。

编译就是根据用户代码一句句翻译一句句的运行的运行。

汇编就是把一个过程的所有代码翻译完再运行。

(一般来说计算机程序书里都会介绍)

反汇编反编译,反就是倒着来,把程序还原为代码,一般现在都比较不可行了,像vb 4就可以,到了vb 6几乎不可以了,现在都vb .net了。

破解技术这个很复杂,一般来说,有限制的程序通过外界影响下变成了无限制的方法,都可以叫做是破解。(暗箱操作,内存查找,文件修改等等...)

----------------------------------------

3.所谓标识符是指常量、 变量、语句标号以及用户自定义函数的名称。C语言规定标识符只能由字母、数字、 下划线组成,并且只能由字母、下划线开头。一些标识符被赋于特定的含义就叫做保留字(或称为关键字)。

由ANSI标准定义的保留字共32个

auto,double,int,struct,break,else,long,switch,case,enum,register,typedef,char,extern,return,union,const,float,short,unsigned,continue,for,signed,void,default,goto,sizeof,volatile,do,if,while,static

以下符号中不能作为标识符的是: 〖B〗

(A)_256 以下划线开头,由下划线和数字组成,可做为标识符

(B) void 类型声明关键字,不能作为标识符

(C) scanf 不在保留字的范围内,可作为标识符(注:不能和函数同名。就是说在插入stdio.h后,如果声明这个变量名就会出错)

(D) Struct 因为C语言区分大小写,故能作为标识符(结构的保留字为struct)

4.

『电脑网络』告诉你真实的宽带速度——区别电脑语言Bit与Byte

 作者:雪域风行 提交日期:2006-9-8 17:01:00 

近期看到有人在讨论电信运营商的宽带速度问题,特在此给大家转贴过来BIT和BYTE的概念问题,看后大家就会明白我们的宽带实际是什么速度了!!!

  

  

   Bit意为“位”或“比特”,是计算机运算的基础;

   Byte意为“字节”,是计算机文件大小的基本计算单位;

  

   说到USB2.0标准接口传输速率。许多人都将“480Mbps”误解为480兆/秒。其实,这是错误的,事实上“480Mbps”应为“480兆比特/秒”或“480兆位/秒”,它等于“60兆字节/秒”,大家看到差距了吧。

  

   这要从Bit和Byte说起:Bit和Byte同译为"比特",都是数据量度单位,bit=“比特”或“位”。

   Byte=字节即1byte=8bits,两者换算是1:8的关系。

   Mbps=mega bits per second(兆位/秒)是速率单位,所以正确的说法应该是说USB2.0的传输速度是480兆位/秒,即480MBps。

   MB=mega bytes(兆比、兆字节)是量单位,1MB/S(兆字节/秒)=8MBPS(兆位/秒)。

  

   我们所说的硬盘容量是40GB、80GB、100GB,这里的B指是的Byte也就是“字节”。

  1 KB = 1024 bytes =2^10 bytes

  1 MB = 1024 KB = 2^20 bytes

  1 GB = 1024 MB = 2^30 bytes

  

   比如以前所谓的56KB的MODEM换算过来56KBps除以8也就是7Kbyte,所以真正从网上下载文件存在硬盘上的速度也就是每秒7Kbyte。

   也就是说与传输速度有关的B一般指的是Bit。

   与容量有关的B一般指的是Byte。

  

   最后再说一点: USB2.0 480Mbps=60MB/S的传输速率还只是理论值,它还要受到系统环境的制约(CPU、硬盘和内存等),其实际读、取写入硬盘的速度约在11~16MB/s。但这也比USB1.1的12Mbps(1.5M/s)快了近10倍。

  很简单 512K宽带实际上下载速度等于65K左右

  把电信宣传的带宽除以8等于实际带宽

这是全世界通用的带宽计量单位。

顺便说一下,带宽不等于网速。带宽只表示单位时间内最大通过能力。

32位计算机,unsigned long[int] 4字节

     unsigned short[int] 2字节

byte

typedef unsigned char       BYTE;

typedef unsigned long       DWORD;

typedef unsigned short      WORD;

1bin表示1位,

1Byte表示一个字节

1B=8b。

回答者:cxq2510 - 经理 四级 4-27 14:07

Bit意为"位"或"比特",是计算机运算的基础;

Byte意为"字节",是计算机文件大小的基本计算单位;

1byte=8bits,两者换算是1:8的关系。

回答者:SteveYoung - 秀才 二级 4-27 14:11

“字节”(Byte)

“比特”(Bit)

当你进行网络下载的时候它们会经常出现,同时你获取的速度指示也都以比特/每秒或者字节/每秒来显示。

现在就来弄清楚比特(Bit)、字节(Byte)和千字节(Kbyte)究竟是什么意思,这样你就能理解它们了。

一个比特就是一个二进制数的最小单元,就像我们说我们能够拥有的最小金额的钱就是一分一样,只不过比特是在二进制数中罢了。

一个比特只能拥有一个值,不是0就是1,所以如果我给你一个值0,你可以说它就是一个比特,如果我给你两个(00),你就可以说它们是两个比特了。

现在,如果你将八个0或者1组合在一起,例如0110 1010(在中间加一个空格是为了看起来清晰明了),你就可以说它们是八个比特或者说一个字节。好,这就对了,八比特就等于一字节,而不管它们都是全是0、全是1或者是由若干0和若干1混合而成。

将这些字节加起来,到了1024个字节的时候,就获得了一个千字(Kbyte)了,为什么是1024而不是1000呢?这是由二进制的进位方式造成的,如果你学过数学,你就会知道上述结果是正确的。

回答者:ghost525 - 试用期 一级 4-27 15:01

1bit 就是1位二进制数.

1Byte就是1个字节.1个字节是由8个二进制位组成的.

所以1Byte=8bit.

回答者:nmgyangguang - 助理 三级 4-27 15:06

“字节”(Byte)

“比特”(Bit)

当你进行网络下载的时候它们会经常出现,同时你获取的速度指示也都以比特/每秒或者字节/每秒来显示。

现在就来弄清楚比特(Bit)、字节(Byte)和千字节(Kbyte)究竟是什么意思,这样你就能理解它们了。

一个比特就是一个二进制数的最小单元,就像我们说我们能够拥有的最小金额的钱就是一分一样,只不过比特是在二进制数中罢了。

一个比特只能拥有一个值,不是0就是1,所以如果我给你一个值0,你可以说它就是一个比特,如果我给你两个(00),你就可以说它们是两个比特了。

现在,如果你将八个0或者1组合在一起,例如0110 1010(在中间加一个空格是为了看起来清晰明了),你就可以说它们是八个比特或者说一个字节。好,这就对了,八比特就等于一字节,而不管它们都是全是0、全是1或者是由若干0和若干1混合而成。

将这些字节加起来,到了1024个字节的时候,就获得了一个千字(Kbyte)了,为什么是1024而不是1000呢?这是由二进制的进位方式造成的,如果你学过数学,你就会知道上述结果是正确的。

1bit 就是1位二进制数.

1Byte就是1个字节.1个字节是由8个二进制位组成的.

所以1Byte=8bit.

注意 1个100m的文件在100m/s的传输网络上需要8秒左右的时间,因为100m的文件是指100m Byte (100*1024*1024字节),后者的100m/s 是指每秒能传送 100m Bit位.

1bit 就是1位二进制数.

1Byte就是1个字节.1个字节是由8个二进制位组成的.

所以1Byte=8bit

是两个计算机上使用的计量单位。1Byte=8bit。

继续阅读