说法 1:1、位(bit) 来自英文 bit,音译为“比特”,表示二进制位位是计算机内部数据储存的最小单位,11010100 是一个 8 位二进制数一个二进制位只可以表示 0 和 1 两种状态(21);两个二进制位可以表示 00、01、10、11 四种(22)状态;三位二进制数可表示八种状态(23)…… 2、字节(byte) 字节来自英文 Byte,音译为 “拜特”,习惯上用大写的“B” 表示 字节是计算机中数据处理的基本单位计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即 1 个字节等于 8 个比特(1Byte=8bit)八位二进制数最小为 00000000,最大为 11111111;通常 1 个字节可以存入一个 ASCII 码,2 个字节可以存放一个汉字国标码 3、字 计算机进行数据处理时,一次存取、加工和传送的数据长度称为字(word)一个字通常由一个或多个(一般是字节的整数位)字节(byte) 构成例如 286 微机的字由 2 个字节组成,它的字长为 16;486 微机的字由 4 个字节组成,它的字长为 32 位机 计算机的字长决定了其 CPU 一次操作处理实际位数的多少,由此可见计算机的字长越大,其性能越优越。
说法 2:字 在计算机中,一串数码作为一个整体来处理或运算的,称为一个计算机字,简称字字通常分为若干个字节(每个字节一般是 8 位)在存储器中,通常每个单元存储一个字,因此每个字都是可以寻址的字的长度用位数来表示 在计算机的运算器、控制器中,通常都是以字为单位进行传送的宇出现在不问的地址其含义是不相同例如,送往控制器去的字是指令,而送往运算器去的字就是一个数 在计算机中作为一个整体被存取、传送、处理的二进制数字符串叫做一个字或单元,每个字中二进制位数的长度,称为字长一个字由若干个字节组成,不同的计算机系统的字长是不同的,常见的有 8 位、16 位、32 位、64 位等,字长越长,计算机一次处理的信息位就越多,精度就越高,字长是计算机性能的一个重要指标目前主流微机都是 32 位机 注意字与字长的区别,字是单位,而字长是指标,指标需要用单位去衡量正象生活中重量与公斤的关系,公斤是单位,重量是指标,重量需要用公斤加以衡量 字长 计算机的每个字所包含的位数称为字长根据计算机的不同,字长有固定的和可变的两种固定字长,即字长度不论什么情况都是固定不变的;可变字长,则在一定范围内,其长度是可变的 计算的字长是指它一次可处理的二进创数字的数目。
计算机处理数据的速率,自然和它一次能加工的位数以及进行运算的快慢有关如果一台计算机的字长是另一台计算机的两倍,即使两台计算机的速度相同,在相同的时间内,前者能做的工作是后者的两倍 一般地,大型计算机的字长为 32―64 位,小型计算机为 12―32 位,而微型计算机为 4一 16 位字长是衡量计算机性能的一个重要因素 字节 字节是指一小组相邻的二进制数码通常是 8 位作为一个字节它是构成信息的一个小单位,并作为一个整体来参加操作,比字小,是构成字的单位 在微型计算机中,通常用多少字节来表示存储器的存储容量 字块 在信息处理中,一群字作为一个单元来处理的称为“字块”.也称“字组”例如,储存于滋鼓的一个磁道上的字群就称为一个字块在磁带上通常每 120 个字符就间隔一个字块际志,也称为一个字块块与块之间一般留 1.27―2.54 厘米(1/2 一 1 英寸)的间隔在大容量存储中,信息都是以字块为单位而存入的,因此只有字块才是可选址的目前,在高速绥冲技术中也引入了“字块”的概念说法 3:8 个位(bit)称为一个字节(byte),两个字节称为一个字(Word),两个字称为一个双字(dword),两个双字称为一个四字(qword)位(bit)只能是 0,1 代码,因为四个二进制数是一个 16 进制数,所以,两个 16 进制的基数表示一个字节。
说法 4:字节(BYTE)、字(WORD)和双字 (DOUBLE WORD),或者说是 8 位、16 位和 32 位储存方式字节也就是 8 位方式能储存 0~255 的数字;字或说是 16 位储存方式能储存 0~65535 的数;双字即 32 位方式能储存 0~4294967295 的数一个字节有 8 位二进制组成,其最高位是第 7 位,最低位是第 0 位,在表示有符号数时,最高位就是符号位通常情况下,存储器按字节编址,读写存储器的最小信息单位就是一个字节由 2 个字节组成一个字,其最高位是第 15 位,最低位是第 0 位高 8 位称为高字节,低 8 位称为低字节,字节和字是汇编语言程序中最常用的两种数据类型,也是最容易出错的数据类型用 2 个字 (4 个字节 )来组成一个双字,其高 16 位称为高字,低 16 位称为低字,如右图所示双字有较大的数据表示范围,它通常是为了满足数据的表示范围而选用的数据类型,也可用于存储远指针字节、字和双字是汇编语言最常用的三种数据类型1、附加几种类型的位(bit)和字节(Byte)的问题(以下的内容均是在 MSDN 中的 Windows Data Types 中查找的)(带有”/”的类型可以在 VC 中互用)长度为一个字节(8 位)的数据类型bool CHAR/char BYTE/byte BOOLEAN/boolean TCHAR长度为两个字节(16 位)的数据类型short/SHORT WORD长度为四个字节(32 位)的数据类型CString int/INT(有符号整型) long/LONG(有符号整型) float/FLOAT DWORD BOOLLPCTSTR LPTSTR长度为八个字节(64 位)的数据类型double/DOUBLEBOOLBoolean variable (should be TRUE or FALSE).This type is declared in WinDef.h as follows:typedef int BOOL;BOOLEANBoolean variable (should be TRUE or FALSE).This type is declared in WinNT.h as follows:typedef BYTE BOOLEAN;WORD16-bit unsigned integer.typedef unsigned short WORD;DWORD32-bit unsigned integer. (4 个字节)(sizeof())typedef unsigned long DWORD;UINTUnsigned INT.typedef unsigned int UINT;HRESULT用于接口,成功的话返回 0,否则是非 0 数。
typedef LONG HRESULT;LPCVOIDPointer to a constant of any type.typedef CONST void *LPCVOID;LPCWSTRPointer to a constant null-terminated string of 16-bit Unicode characters.typedef CONST WCHAR *LPCWSTR;LPVOIDPointer to any type.typedef void *LPVOID;PVOIDPointer to any type.typedef void *PVOID;TCHAR#ifdef UNICODEtypedef WCHAR TCHAR;#elsetypedef char TCHAR;#endifVOIDAny type.#define VOID void2、以下几种类型的变量可以直接赋给 CString 型char strTmp[255]char *strTmpLPCTSTR strTmpBSTR strTmpLPTSTR strTmp3、WCHAR 为 Unicode 字符,即不论中英文,每个字有两个字节组成。
如果当前编译方式为 ANSI(默认)方式,TCHAR 等价于 CHAR,如果为 Unicode 方式,TCHAR 等价于 WCHAR4、LPSTR 和 LPCSTR 有什么区别?答:LPCSTR = const LPSTR一个是 char*,一个是 const char*LPSTR:32-bit 指针,指向一个字符串LPCSTR:32-bit 指针,指向一个常数字符串LPCTSTR:32-bit 指针,指向一个常数字符串此字符串可移植到 Unicode 和 DBCS(双字节字集)LPTSTR:32-bit 指针,指向一个字符串此字符串可移植到 Unicode 和 DBCS(双字节字集)LPSTRPointer to a null-terminated string of 8-bit Windows (ANSI) characters.typedef CHAR *LPSTR;LPCSTRPointer to a constant null-terminated string of 8-bit Windows (ANSI) characters.typedef __nullterminated CONST CHAR *LPCSTR;LPTSTR#ifdef UNICODEtypedef LPWSTR LPTSTR;#elsetypedef LPSTR LPTSTR;#endifLPCTSTR#ifdef UNICODEtypedef LPCWSTR LPCTSTR;#elsetypedef LPCSTR LPCTSTR;#endifLPCSTR 可以理解成一种命名方法(即匈牙利命名法)LPCSTR 表示为:L 也许是 longP 也许是 point(即*)C 也许是 constSTR 也许是说明它是一个字符串。
也即 32-指针指向一个字符串常量5、字符串的串接方法一、CString gray(”Gray”);CString cat(”Cat”);CString graycat = gray + cat;方法二、char gray[] = “Gray”;char cat[] = “Cat”;char *graycat = (LPSTR)malloc(strlen(gray) + strlen(cat) + 1);//malloc 返回的是一个 void *类型的strcpy(graycat, gray);strcat(graycat, cat);CString ss=graycat;6、_T()的意思CString s;s.Format(_T(”%d”), total);对字符串使用_T()宏,这是为了让代码至少有 Unicode 的意识bit、byte、位、字节、汉字的关系; L4 f3 e3 P7 Y- p" d' I9 q, N( i$ | 1 bit= 1 二进制数据- U1 ~3 P/ x& U3 U6 n7 p, S1 byte= 8 bit1 字母 = 1 byte = 8 bit% r) y( W `( t)1 汉字 = 2 byte = 16 bit1. bit:位 4 S* E+ l# }* S1 o一个二进制数据 0 或 1,是 1bit;2. byte:字节存储空间的基本计量单位,如:MySQL 中定义 VARCHAR(45) 即是指 45 个字节;3 U%g/ ^/ 1 byte = 8 bit3. 一个英文字符占一个字节;1 字母 = 1 byte = 8 bit$ y7 R2 ?* T, O n4. 一个汉字占 2 个字节;1 汉字 =。