字和字节和位的关系_第1页
字和字节和位的关系_第2页
字和字节和位的关系_第3页
字和字节和位的关系_第4页
字和字节和位的关系_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1、位(bit) 来自英文bit,音译为“比特”,表示二进制位。位是计算机内部数据储存的最小单位,是一个8位二进制数。一个二进制位只可以表示0和1两种状态(21);两个二进制位可以表示00、01、10、11四种(22)状态;三位二进制数可表示八种状态(23)。 2、字节(byte) 字节来自英文Byte,音译为“拜特”,习惯上用大写的“B”表示。 字节是计算机中数据处理的基本单位。计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即1个字节等于8个比特(1Byte=8bit)。八位二进制数最小为00000000,最大为;通常1个字节可以存入一个ASCII码,2个字节可以存放一

2、个汉字国标码。 3、字 计算机进行数据处理时,一次存取、加工和传送的数据长度称为字(word)。一个字通常由一个或多个(一般是字节的整数位)字节构成。例如286微机的字由2个字节组成,它的字长为16;486微机的字由4个字节组成,它的字长为32位机。 计算机的字长决定了其CPU一次操作处理实际位数的多少,由此可见计算机的字长越大,其性能越优越。 另一种说法: 字 在计算机中,一串数码作为一个整体来处理或运算的,称为一个计算机字,简称宇。字通常分为若干个字节(每个字节一般是8位)。在存储器中,通常每个单元存储一个字,因此每个字都是可以寻址的。字的长度用位数来表示。 在计算机的运算器、控制器中,通

3、常都是以字为单位进行传送的。宇出现在不问的地址其含义是不相同。例如,送往控制器去的字是指令,而送往运算器去的字就是一个数。 在计算机中作为一个整体被存取、传送、处理的二进制数字符串叫做一个字或单元,每个字中二进制位数的长度,称为字长。一个字由若干个字节组成,不同的计算机系统的字长是不同的,常见的有8位、16位、32位、64位等,字长越长,计算机一次处理的信息位就越多,精度就越高,字长是计算机性能的一个重要指标。目前主流微机都是32位机。 注意字与字长的区别,字是单位,而字长是指标,指标需要用单位去衡量。正象生活中重量与公斤的关系,公斤是单位,重量是指标,重量需要用公斤加以衡量。 字长 计算机的

4、每个字所包含的位数称为字长。根据计算机的不同,字长有固定的和可变的两种。固定字长,即字长度不论什么情况都是固定不变的;可变字长,则在一定范围内,其长度是可变的。 计算的字长是指它一次可处理的二进创数字的数目。计算机处理数据的速率,自然和它一次能加工的位数以及进行运算的快慢有关。如果一台计算机的字长是另一台计算机的两倍,即使两台计算机的速度相同,在相同的时间内,前者能做的工作是后者的两倍。 一般地,大型计算机的字长为3264位,小型计算机为1232位,而微型计算机为4一16位。字长是衡量计算机性能的一个重要因素。 字节 字节是指一小组相邻的二进制数码。通常是8位作为一个字节。它是构成信息的一个小

5、单位,并作为一个整体来参加操作,比字小,是构成字的单位。 在微型计算机中,通常用多少字节来表示存储器的存储容量。 字块 在信息处理中,一群字作为一个单元来处理的称为“字块”也称“字组”。例如,储存于滋鼓的一个磁道上的字群就称为一个字块。在磁带上通常每120个字符就间隔一个字块际志,也称为一个字块。块与块之间一般留1.272.54厘米(1/2一1英寸)的间隔。在大容量存储中,信息都是以字块为单位而存入的,因此只有字块才是可选址的。目前,在高速绥冲技术中也引入了“字块”的概念。祝你好运8个位(bit)称为一个字节(byte),两个字节称为一个字(Word),两个自称为一个双字(dword),两个双

6、字称为一个四字(qword)位(bit)只能是0,1代码,因为四个二进制数是一个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(有符号整型)

7、 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-bi

8、t 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

9、 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、以下几种类型的变量可以直接赋给C

10、String型char strTmp255char *strTmpLPCTSTR strTmpBSTR strTmpLPTSTR strTmp3、WCHAR为Unicode字符,即不论中英文,每个字有两个字节组成。如果当前编译方式为ANSI(默认)方式,TCHAR等价于CHAR,如果为Unicode方式,TCHAR等价于WCHAR。4、LPSTR 和 LPCSTR 有什么区别?答:LPCSTR = const LPSTR一个是char*,一个是const char*LPSTR:32-bit指针,指向一个字符串LPCSTR:32-bit指针,指向一个常数字符串LPCTSTR:32-bit指针,指

11、向一个常数字符串。此字符串可移植到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 C

12、HAR *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”);

13、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()宏,这是为了让代码至少

14、有Unicode的意识bit、byte、位、字节、汉字的关系 1 bit = 1 二进制数据 1 byte = 8 bit 1 字母 = 1 byte = 8 bit 1 汉字 = 2 byte = 16 bit4. 一个汉字占2个字节; 1 汉字 = 2 byte = 16 bit5. 标点符号 A. 汉字输入状态下,默认为全角输入方式; B. 英文输入状态下,默认为半角输入方式;1. bit:位 一个二进制数据0或1,是1bit;2. byte:字节 存储空间的基本计量单位,如:MySQL中定义 VARCHAR(45) 即是指 45个字节; 1 byte = 8 bit3. 一个英文字符占

15、一个字节; 1 字母 = 1 byte = 8 bit C. 全角输入方式下,标点符号占2字节; D. 半角输入方式下,标点符号占1字节; 故:汉字输入状态下的字符,占2个字节 (但不排除,自己更改了默认设置); 英文输入状态下的字符,占1个字节 (但不排除,自己更改了默认设置); 老美在发明电脑时,肯定以自己的英文字母-即他们自认为的字符为最小的存储计量单位,于是也就有了不规范的1字符=1byte, 岂不知还有我们伟大的汉字计量单位,NND,一个汉字也是一个字符,我们的1汉字字符就等于2byte,后来,他们可能意识到这个尴尬的问题,于是又标榜为:一个字母为一个标准字符,去球吧,谁整天没事说个

16、字符还“标准字符”,所以啊,个人认为:字符,不能用于标准的计量单位。-补充: 计算机对各国语言的支持度,可分为以下三个阶段,如图:更详细参考:/encoding.htm 。B、Bit、Byte他别指的是什么?2008-07-02 13:05bit (binary digit) 位 位是计算机数据中最小单元。位的值只会是0或1。虽然计算机也提供对位的判断和操作,但是计算机指令一般以字节为单位。在大多数的计算机系统中,八位是一个字节。一位的值通常以存储电容是否带电来衡量。 半个字节在英语中叫nibble。在一些系统中,octet代表8位,而不用字节;而在另一些系统中,octets组成32位字,在这

17、些系统中,指令长度以全字(32位)或半字(16位)表示。 byte 关键字代表一种整型,该类型按下表所示存储值: 类型 范围 大小 .NET Framework 类型 byte 0 到 255 无符号 8 位整数 System.Byte 文本 可如下例所示声明并初始化 byte 变量: byte myByte = 255; 在以上声明中,整数 255 从 int 类型隐式转换为 byte 类型。如果整数超出了 byte 类型的范围,则将发生编译错误。 转换 存在从 byte 类型到 short、ushort、int、uint、long、ulong、float、double 或 decimal

18、类型的预定义隐式转换。 不能将存储大小更大的非文字数字类型隐式转换为 byte 类型(请参见整型表中有关整型存储大小的信息)。例如,请看以下两个 byte 变量 x 和 y: byte x = 10, y = 20; 以下赋值语句将产生一个编译错误,原因是赋值运算符右侧的算术表达式默认情况下计算为 int。 byte z = x + y; / Error: conversion from int to byte 若要解决此问题,请使用强制转换: byte z = (byte)(x + y); / OK: explicit conversion 但是,在目标变量具有相同或更大的存储大小时,使用下

19、列语句是可能的: int x = 10, y = 20; int m = x + y; long n = x + y; 同样,不存在浮点型到 byte 类型的隐式转换。例如,除非使用显式强制转换,否则以下语句将生成一个编译器错误: byte x = 3.0; / Error: no implicit conversion from double byte y = (byte)3.0; / OK: explicit conversion 调用重载方法时,必须使用显式转换。例如,请看以下使用 byte 和 int 类型参数的重载方法: public static void MyMethod(int i) public static void MyMethod(byte b) 使用 byte 显式转换可保证调用正确的类型,例如: MyMethod(5); / Calling the method with the int parame

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论