BYTE类型到底有什么用,怎么用?

pro_To_Life 2010-12-02 02:17:04
看见BYTE这个关键字,我既陌生,又熟悉
熟悉是因为:内存处处在,字节处处在
陌生是因为:我真想不到在C++程序里,它到底怎么用,有什么用?平常用的都是int,char....的类型,可是
byte类型呢?
这个byte类型又和别的类型例如int类型等有什么区别呢?

在msdn里我只看到下面几句话的参考:
Byte (8 bits).
This type is declared in WinDef.h as follows:
typedef unsigned char BYTE;

望高人指点,有程序实例充分说明更好

...全文
62580 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
zero1236 2013-03-05
  • 打赏
  • 举报
回复
CsNovice 2012-05-27
  • 打赏
  • 举报
回复
那请问byte dir:2;是什么意思,是指dir为2个字节码
ddyddl 2010-12-02
  • 打赏
  • 举报
回复
typedef unsigned char       BYTE;
至善者善之敌 2010-12-02
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 pengzhixi 的回复:]
引用 3 楼 zhanshen2891 的回复:
BYTE是让人关注它的长度,而不需要关注它的类型


个人同意这个说法
[/Quote]

哦!
pengzhixi 2010-12-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhanshen2891 的回复:]
BYTE是让人关注它的长度,而不需要关注它的类型
[/Quote]

个人同意这个说法
bluewanderer 2010-12-02
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 pro_to_life 的回复:]
既然说BYTE就是unsigned char,下面:
BYTE a[10];
a[0]=255 可以么?
a[1]=256 可以么?
[/Quote]

请先好好看书,完毕...
hz张三 2010-12-02
  • 打赏
  • 举报
回复
byte是一个数据类型, 8个bits,这么看,是无所谓有没符号。

其实一切都是byte,
short = 2个byte
int = 4个byte。

sizeof就是获取数据类型是几个byte,因此在内存操作中都习惯使用byte作为最小存储单位。

到汇编层,8086/8088的寄存器AX/BX/CX/DX啥的都是8位的,一个byte
高级语言的赋值语句到这一层就成了 mov指令


周药师 2010-12-02
  • 打赏
  • 举报
回复
通讯方面用的比较多
pro_To_Life 2010-12-02
  • 打赏
  • 举报
回复
既然说BYTE就是unsigned char,下面:
BYTE a[10];
a[0]=255 可以么?
a[1]=256 可以么?
wanghang8888 2010-12-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 bluewanderer 的回复:]
BYTE就是unsigned char... 只是比你直接敲unsigned char少9个字母
[/Quote]
byte a=1;输出a,得到的是对应的ascii码值。得包含头文件<windows.h>
bluewanderer 2010-12-02
  • 打赏
  • 举报
回复
In the logic of programming everything ends up an integer of certain amount of bits. What makes it special is that you think it is special, nothing more and nothing less. - By ...me

说到底那8位或者其他位的“符号”到底是什么意思,全看你把它交给什么代码处理。
pro_To_Life 2010-12-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 bluewanderer 的回复:]

给int用binsort你至少需要16GB内存= =b
[/Quote]
确实,BYTE类型的元素可以是数字,字母,特殊字符....么?
bluewanderer 2010-12-02
  • 打赏
  • 举报
回复
给int用binsort你至少需要16GB内存= =b
yong_f 2010-12-02
  • 打赏
  • 举报
回复
BYTE就是unsigned char... 只是比你直接敲unsigned char少9个字母
pro_To_Life 2010-12-02
  • 打赏
  • 举报
回复
比如说,下面这个有人说取代冒泡和选择排序的要进入教材很火的鸽巢排序,里面就用到BYTE类型
void PigeonholeSort(BYTE *array, int length){
int b[256] = {0};
int i,k,j = 0;
for(i=0; i<length; i++)
b[array[i]]++;
for(i=0; i<256; i++)
for(k=0; k<b[i]; k++)
array[j++] = i;
}
为什么不用int类型呢?b[array[i]]里面array[i]的元素不是int类型,是BYTE类型也就是unsigned char类型,怎么也可以用呢
bluewanderer 2010-12-02
  • 打赏
  • 举报
回复
BYTE就是unsigned char... 只是比你直接敲unsigned char少9个字母
pro_To_Life 2010-12-02
  • 打赏
  • 举报
回复
那么一个BYTE类型数组存的每个元素是不是不能超过255
zhanshen2891 2010-12-02
  • 打赏
  • 举报
回复
BYTE是让人关注它的长度,而不需要关注它的类型
zhaolinger2 2010-12-02
  • 打赏
  • 举报
回复
举个例子:

BYTE *p = (BYTE*)malloc(nLen);
::ReadFile(m_hFile,p,dwLen,&dwRead,NULL);//从m_hFile中读入dwLen长度的内容放入p中,具体可参考ReadFile的相关资料
zhaolinger2 2010-12-02
  • 打赏
  • 举报
回复
BYTE类型,其实就是无符号字符型。
你可以把它用在所有需要用无符号字符型的任何地方。
比较多的是在做文件读入读出的时候用指针的方式使用到。

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧