字字节位的关系 - 范文中心

字字节位的关系

08/17

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)。一个字通常 由一个或多个(一般是字节的整数位)字节构成。例如286微机的字由2个字节组成,它 的字长为16;486微机的字由4个字节组成,它的字长为32位机。

计算机的字长决定了其CPU一次操作处理实际位数的多少,由此可见计算机的字长越大, 其性能越优越。

另一种说法:

在计算机中,一串数码作为一个整体来处理或运算的,称为一个计算机字,简称宇。字通常 分为若干个字节(每个字节一般是8位)。在存储器中,通常每个单元存储一个字,因此每个 字都是可以寻址的。字的长度用位数来表示。

在计算机的运算器、控制器中,通常都是以字为单位进行传送的。宇出现在不问的地址其含 义是不相同。例如,送往控制器去的字是指令,而送往运算器去的字就是一个数。

在计算机中作为一个整体被存取、传送、处理的二进制数字符串叫做一个字或单元,每个字 中二进制位数的长度,称为字长。一个字由若干个字节组成,不同的计算机系统的字长是不 同的,常见的有8位、16位、32位、64位等,字长越长,计算机一次处理的信息位就越 多,精度就越高,字长是计算机性能的一个重要指标。目前主流微机都是32位机。

注意字与字长的区别,字是单位,而字长是指标,指标需要用单位去衡量。正象生活中重量 与公斤的关系,公斤是单位,重量是指标,重量需要用公斤加以衡量。

字长

计算机的每个字所包含的位数称为字长。根据计算机的不同,字长有固定的和可变的两种。 固定字长,即字长度不论什么情况都是固定不变的;可变字长,则在一定范围内,其长度是 可变的。

计算的字长是指它一次可处理的二进创数字的数目。计算机处理数据的速率,自然和它一次 能加工的位数以及进行运算的快慢有关。如果一台计算机的字长是另一台计算机的两倍,即 使两台计算机的速度相同,在相同的时间内,前者能做的工作是后者的两倍。 一般地,大型计算机的字长为32―64位,小型计算机为12―32位,而微型计算机为4一

16位。字长是衡量计算机性能的一个重要因素。

字节

字节是指一小组相邻的二进制数码。通常是8位作为一个字节。它是构成信息的一个小单 位,并作为一个整体来参加操作,比字小,是构成字的单位。

在微型计算机中,通常用多少字节来表示存储器的存储容量。

字块

在信息处理中,一群字作为一个单元来处理的称为“字块”.也称“字组”。例如,储存于滋鼓

的一个磁道上的字群就称为一个字块。在磁带上通常每120个字符就间隔一个字块际志, 也称为一个字块。块与块之间一般留1.27―2.54厘米(1/2一1英寸)的间隔。在大容量存储 中,信息都是以字块为单位而存入的,因此只有字块才是可选址的。目前,在高速绥冲技术 中也引入了“字块”的概念。 祝你好运

8

个位(bit)称为一个字节(byte),两个字节称为一个字(Word),两个自称为一个双字 (dword),两个双字称为一个四字(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(有符号整型) float/FLOAT DWORD BOOL LPCTSTR LPTSTR

长度为八个字节(64位)的数据类型

double/DOUBLE

BOOL

Boolean variable (should be TRUE or FALSE).

This type is declared in WinDef.h as follows:

typedef int BOOL;

BOOLEAN

Boolean variable (should be TRUE or FALSE).

This type is declared in WinNT.h as follows:

typedef BYTE BOOLEAN;

WORD

16-bit unsigned integer.

typedef unsigned short WORD;

DWORD

32-bit unsigned integer. (4个字节)(sizeof())

typedef unsigned long DWORD;

UINT

Unsigned INT.

typedef unsigned int UINT;

HRESULT

用于接口,成功的话返回0,否则是非0数。typedef LONG HRESULT; LPCVOID

Pointer to a constant of any type.

typedef CONST void *LPCVOID;

LPCWSTR

Pointer to a constant null-terminated string of 16-bit Unicode characters. typedef CONST WCHAR *LPCWSTR;

LPVOID

Pointer to any type.

typedef void *LPVOID;

PVOID

Pointer to any type.

typedef void *PVOID;

TCHAR

#ifdef UNICODE

typedef WCHAR TCHAR;

#else

typedef char TCHAR;

#endif

VOID

Any type.

#define VOID void

2、以下几种类型的变量可以直接赋给CString型

char strTmp[255]

char *strTmp

LPCTSTR strTmp BSTR strTmp

LPTSTR strTmp

3、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指针,指向一个常数字符串。此字符串可移植到Unicode和DBCS(双字节 字集)

LPTSTR:32-bit指针,指向一个字符串。此字符串可移植到Unicode和DBCS(双字节字集) LPSTR

Pointer to a null-terminated string of 8-bit Windows (ANSI) characters. typedef CHAR *LPSTR;

LPCSTR

Pointer to a constant null-terminated string of 8-bit Windows (ANSI) characters. typedef __nullterminated CONST CHAR *LPCSTR;

LPTSTR

#ifdef UNICODE

typedef LPWSTR LPTSTR;

#else

typedef LPSTR LPTSTR;

#endif LPCTSTR

#ifdef UNICODE

typedef LPCWSTR LPCTSTR;

#else

typedef LPCSTR LPCTSTR;

#endif

LPCSTR可以理解成一种命名方法(即匈牙利命名法)

LPCSTR表示为:

L 也许是long

P 也许是point(即*)

C 也许是const

STR也许是说明它是一个字符串。

也即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, S

1 byte = 8 bit

1 字母 = 1 byte = 8 bit% r) y( W `( t) p" |. l" G$ H

1 汉字 = 2 byte = 16 bit

4. 一个汉字占2个字节;

1 汉字 = 2 byte = 16 bit6 h0 @' s- |7 y, D

$ e8 W" B% A- D6 Z) ?/ z

5. 标点符号

A>. 汉字输入状态下,默认为全角输入方式;7 @3 b8 ^" I7 l) b

B>. 英文输入状态下,默认为半角输入方式;

# U; F3 c, a9 h% K2 ^0 p+ e

1. bit:位4 S* E+ l# }* S1 o

一个二进制数据0或1,是1bit; 9 b* j9 m) k+ P: g; A

2. byte:字节8 C1 h: J8 j% I5 l, N

存储空间的基本计量单位,如:MySQL中定义 VARCHAR(45) 即是指 45个字节;3 U% C' U1 g/ ^/ D

1 byte = 8 bit

3. 一个英文字符占一个字节;" @" f4 g6 b; v9 C4 r$ b

1 字母 = 1 byte = 8 bit$ y7 R2 ?* T, O n C>. 全角输入方式下,标点符号占2字节; D>. 半角输入方式下,标点符号占1字节;4 P2 {9 f$ f8 `% D" D

故:汉字输入状态下的字符,占2个字节 (但不排除,自己更改了默认设置);

英文输入状态下的字符,占1个字节 (但不排除,自己更改了默认设置);& ~" b0 ^ R* x+ J/ g# }9 G5 O 2 i8 I& b0 |' p0 r% h

4 X0 c+ G$ c- G+ s3 _% N

老美在发明电脑时,肯定以自己的英文字母--即他们自认为的字符为最小的存 储计量单位,于是也就有了不规范的1字符=1byte, 岂不知还有我们伟大的汉字计量单 位,NND,一个汉字也是一个字符,我们的1汉字字符就等于2byte,后来,他们可能意识 到这个尴尬的问题,于是又标榜为:一个字母为一个标准字符,去球吧,谁整天没事说个 字符还“标准字符”,所以啊,个人认为:字符,不能用于标准的计量单位。 * N6 D* t* U/ Q4 c4 W

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

) e0 s+ V5 y# X7 u$ h* S, k

补充:- ^" w o1 \0 X: h' n. j 计算机对各国语言的支持度,可分为以下三个阶段,如图:

4 T/ d: {* b2 U3 u ' N5 P1 m% S" A. u% q

更详细参考:http://www.regexlab.com/zh/encoding.htm 。

) {+ m$ y/ L% Z' M6 I9 z! ]

B、Bit、Byte他别指的是什么??

+ a4 q6 N7 m! p: a

2008-07-02 13:05( p: @/ W! M" q$ ~) Q6 R bit (binary digit) 位

位是计算机数据中最小单元。位的值只会是0或1。虽然计算机也提供对位的判断和操作, 但是计算机指令一般以字节为单位。在大多数的计算机系统中,八位是一个字节。一位的值通常以存储电容是否带电来衡量。 2 e9 m) l0 j# m+ x2 c, k 半个字节在英语中叫nibble。在一些系统中,octet代表8位,而不用字节;而在另一些系

统中,octets组成32位字,在这些系统中,指令长度以全字(32位)或半字(16位)表示。 2 I9 y/ G# V3 p1 J byte 关键字代表一种整型,该类型按下表所示存储值: 0 N( h A" s1 m; L' q 类型 范围 大小 .NET Framework 类型 byte 0 到 255 无符号 8 位整数 System.Byte $ H# U, S7 k' m+ `, L/ A 文本 可如下例所示声明并初始化 byte 变量:

byte myByte = 255; 在以上声明中,整数 255 从 int 类型隐式转换为 byte 类型。如果整数超出了 byte 类型

的范围,则将发生编译错误。

转换 存在从 byte 类型到 short、ushort、int、uint、long、ulong、float、double 或 decimal

类型的预定义隐式转换。 ( E! N: A6 w+ s! s 不能将存储大小更大的非文字数字类型隐式转换为 byte 类型(请参见整型表中有关整型存

储大小的信息)。例如,请看以下两个 byte 变量 x 和 y:

byte x = 10, y = 20; 以下赋值语句将产生一个编译错误,原因是赋值运算符右侧的算术表达式默认情况下计算为

int。 ! K7 [' A1 L& K5 O9 C+ g7 m2 I byte z = x + y; // Error: conversion from int to byte 若要解决此问题,请使用强制转换:

byte z = (byte)(x + y); // OK: explicit conversion 但是,在目标变量具有相同或更大的存储大小时,使用下列语句是可能的:

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 显式转换可保证调用正确的类型,例如: & e% o1 K2 g* z' f9 u% g) p MyMethod(5); // Calling the method with the int parameter MyMethod((byte)5); // Calling the method with the byte parameter

b=bit 表示“位”

B=Byte 表示“字节” / J4 ?) c, T3 W8 I+ V( e

1 Byte=8 bit

一个字节( byte)可以存放八个二进制数字或一个字符(一个汉字占两个字节),1024个 字节称为一个千字节,记为1KB;1024个千字节称为一个兆字节,记为1MB;1024个 兆字节称为一个吉字节,记为1GB。

搜索更多相关主题的帖子: byte

bytebyte

byte bit

bitbit

bit 汉字

汉字汉字

汉字 字节

字节字节

字节 关系

关系关系

关系

字节

字节字节

字节(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位称为低字,如右图所示。

双字有较大的数据表示范围,它通常是为了满足数据的表示范围而选用的数据类型,也可用于存

储远指针。

字节、字和双字是汇编语言最常用的三种数据类型,下图表现出它们三者之间的组成关系。


相关内容

  • 从此乱码是路人
    相信大家在刚学 Qt 的时候一定遇到过 #include #include #include int main(int argc, char *argv[]) { QApplication a(argc, argv); QLabel lb; ...
  • 真题及答案
    2008年4月全国计算机等级考试四级笔试试卷 数据库工程师 选择题 (1) 数据模型定义子数据库中数据的组织.描述.存储和操作规范,可以分为概念模型.数据结构模 型和物理模型三大类.概念模型的典型代表是 A A )实体-联系模型 B )关系 ...
  • 如何将汉字转换成二进制编码
    各数制之间的转换 我们用R表示任何数制的基数,讨论各数制之间的转换. 1.R进制数转换为十进制数 二进制.八进制和十六进制数转换为等值的十进制数,只要把它们用多项式表示并在十进制下进行计算,所得的结果就是十进制数. 2.十进制数转换为R进制 ...
  • 常量与变量的分类
    整型常量 1. 八进制整常数 八进制整常数必须以0开头,即以0作为八进制数的前缀.数码取值为0-7.八进制数通常是无符号数. 以下各数是合法的八进制数: 015(十进制为13) 0101(十进制为65) 0177777(十进制为65535) ...
  • 汇编语言试题库
    汇编语言2005-2006学年第二学期期末考试复习题及参考答案 一.填空 1.十进制数369转换成二进制数为()2,转换成十六进制数为()16. 2.计算机中的指令由(操作码)和(地址码)两部分组成. 3.8086的地址总线有20根,寻址范 ...
  • 科普趣味知识竞赛--计算机部分
    知识竞赛(计算机部分) 简单题 1.多媒体计算机是指( C ) A . 具有多种外部设备的计算机 B . 能与多种媒体设备连接的计算机 C . 能处理多种媒体的计算机 D . 借助多种媒体操作的计算机 2.电子数字计算机工作最重要的特征是( ...
  • 微机原理考试整理
    1.8086从功能上分成了EU 和BIU 两部分.这样设计的优点是什么? 答:传统计算机在执行程序时,CPU 总是相继地完成取指令和执行指令的动作, 即,指令的提取和执行是串行进行的.而8086CPU 在功能上分成了EU 和BIU 两 部分 ...
  • 机顶盒智能卡方案
    机顶盒智能卡方案 1 技术背景简要说明 1.1 条件接收 条件接收是指对播出的数字电视节目内容进行数字加扰以建立有效的收费体系,从而保障节目提供商和电视台的利益.条件接收技术主要有三大技术组成:加解扰技术,寻址技术和加解密技术,简单的说来, ...
  • 计算机网络原理课后习题答案
    <计算机网络>(第四版) 谢希仁 第1章 概述 作业题1-03.1-06.1-10.1-13.1-20.1-22 1-03.试从多个方面比较电路交换.报文交换和分组交换的主要优缺点. 答:(1)电路交换 它的特点是实时性强,时延 ...
  • ping命令简单介绍+用ping简单测网速yc
    ping可以用来检查网络是否通畅或者网络连接速度,而作为网络管理员ping命令是第一个必须掌握的DOS命令.我们可以用ping来给网络上指定IP的计算机发送一个数据包,而对方就要返回一个同样大小的数据包,根据返回的数据包就可以判定对方机器的 ...