Byte,TBytes,array of Byte, array[0..9] of byte的区别
来源:互联网 发布:知乎miya的米牙 编辑:程序博客网 时间:2024/06/05 16:28
Byte前面已经说是存放bit的单元,是电脑内存的基本单位,byte表示0-255中的256个数字
下面为Byte的用法:
var B: Byte; // 表示0-255的数字begin B := 1; Log(B.ToString()); //1 B := 255; Log(B.ToString()); //255end;
下面将Char转换成Byte:
var C: Char; // char 表示字符任意字符begin C := '1'; Log(C); // 1 Log(SizeOf(C).ToString()); //2 一个Char占两个Byte Log(Byte(C).ToString()); // 49 Byte强制转换 将Chr转换成Byte 这里1的字符用Ascii表示49 // 那怎么原样输出呢 Log(StringOf(BytesOf(C))); //1 这样将chr转换成Byte,然后再讲Byte转换成string才是原样 C := '我'; Log(C); // 我 Log(SizeOf(C).ToString()); //2 Log(Byte(C).ToString()); // 17,为嘛是17呢? 看下面 一个字节无法存放一个中文字符 Log(StringOf(BytesOf(C))); // 我,这里C占两个字节,为TBytes,所以不能直接用Byte强制转换,Byte强制转换只能转一个字节 end;
TBytes跟array of byte 一样,即为动态数组,使用时需要SetLength(a, n),
下面为TBytes和array[0..9] of byte的区别:
var a: TBytes; // array of Byte b: array[0..9] of byte; s: string; i: integer;begin s := '12345'; SetLength(a, s.Length); // 动态数组 for I := 0 to s.Length-1 do begin a[i] := Byte(s[i+1]); Log(a[i].ToString()); //49 50 51 52 53 end; for I := 0 to s.Length-1 do // 静态数组 begin b[i] := Byte(s[i+1]); Log(b[i].ToString()); //49 50 51 52 53 end;end;
虽然说效果上是一样的,但这里提醒一下,要用到串口通讯的时候,这两种数组在底层实现方法和寻址都是有区别的,但长度还是一样,
不影响平常的使用,在串口通讯中,是用到静态数组,用动态数组时,inbuff的内容会改变,所以输出时需要将动态数组转换成动态数组输出。
串口通讯实例,下次有时间补上。
阅读全文
0 0
- Byte,TBytes,array of Byte, array[0..9] of byte的区别
- DelphiXe 中静态数组TByteArray和动态数组TBytes /array of byte 的区别
- The max length of a byte array
- String,PChar,PByte,Array of Char,Array of Byte 转换
- String,PChar,PByte,Array of Char,Array of Byte 转换
- delphi中string,pchar,array of char,pointer,Pbyte,array of byte之间的转化
- 字符串相互转字符数组 string byte 数组 array of byte
- delphi中String,PChar,PByte,Array of Char,Array of Byte 转换
- delphi中String,PChar,PByte,Array of Char,Array of Byte 转换
- delphi中String,PChar,PByte,Array of Char,Array of Byte 转换
- python byte array
- 1-byte array(byte[], boolean[])图片导致的内存过大
- byte[]、sbyte[]、int[]以及Array的故事
- Bitmap, byte array, Drawable之间的转换
- A Byte of Python
- a byte of python
- Byte of Python
- BeanDefinitionStoreException,MalformedByteSequenceException: Invalid byte 3 of 3-byte的解决方法
- Linux下安装mysql数据库(源码编译安装)及排错
- 物资调度dfs解法和dp解法
- hdu 2067 小兔的棋盘(卡特兰数)
- 简单分页用的page类
- tp5的RBAC插件及其使用很方便的管理用户登录及操作权限
- Byte,TBytes,array of Byte, array[0..9] of byte的区别
- 帮你理清 Web 应用的登录状态
- 测试的那点事之node缓存
- Tomcat入门
- 京东笔试题——进制均值
- MySQL创建存储过程
- eclipse更改J2EE对应的Web版本
- 安卓设置全屏或者无标题
- 基础题目--树