Byte前面已经说是存放bit的单元,是电脑内存的基本单位,byte表示0-255中的256个数字

下面为Byte的用法:

var
B: Byte; // 表示0-255的数字
begin
B := 1;
Log(B.ToString()); //1 B := 255;
Log(B.ToString()); //255
end;

下面将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的内容会改变,所以输出时需要将动态数组转换成动态数组输出。

串口通讯实例,下次有时间补上。

Byte,TBytes,array of Byte, array[0..9] of byte的区别的更多相关文章

  1. 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

    'utf-8' codec can't decode byte 0xff in position 0: invalid start byte 觉得有用的话,欢迎一起讨论相互学习~Follow Me 今 ...

  2. TensorFlow学习笔记(UTF-8 问题解决 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte)

    我使用VS2013  Python3.5  TensorFlow 1.3  的开发环境 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff ...

  3. tensorflow UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

    tensorflow读取图像出现错误:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid s ...

  4. TensorFlow学习('utf-8' codec can't decode byte 0xff in position 0: invalid start byte)

    使用语句: image_raw_data = tf.gfile.GFile("./picture.jpg", "r").read() 读取图像时报错如下: Un ...

  5. Python:出现UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc9 in position 0: invalid continuation byte问题

    我在导入一个csv文件的时候出现了一个问题 报错的内容是这样的: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc9 in positio ...

  6. Pandas读取文件报错UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb6 in position 0: invalid start byte

    pandas读取文件时报UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb6 in position 0: invalid start by ...

  7. binlog2sql 解析日志失败 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xba in position 0: invalid start byte

    python35 ./binlog2sql.py -h... -P... -u... -p... -B --start-file="mysql-bin.091940" --star ...

  8. byte数组与int,long,short,byte转换 (转载)

    byte数组和short数组转换 public short bytesToShort(byte[] bytes) { return ByteBuffer.wrap(bytes).order(ByteO ...

  9. Array.prototype.slice && Array.prototype.splice 用法阐述

    目的 对于这两个数组操作接口,由于不理解, 往往被误用, 或者不知道如何使用.本文尝试给出容易理解的阐述. 数组 什么是数组? 数组是一个基本的数据结构, 是一个在内存中依照线性方式组织元素的方式, ...

随机推荐

  1. JQUERY 保存成功后又下角动态提示

    $.messager.show({ // show error message         title : '操作结果',         msg : '操作成功!'        });

  2. TCP的拥塞控制

    1.引言 计算机网络中的带宽.交换结点中的缓存和处理机等,都是网络的资源.在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏.这种情况就叫做拥塞. 拥塞控制就是防止 ...

  3. C#中的问号

    本人转载自: ①http://msdn.microsoft.com/zh-cn/practices/dd391752.aspx ②http://jhxk.iteye.com/blog/439888 在 ...

  4. IT人 转型

    IT人 转型 转自: http://blog.sina.com.cn/s/blog_88534dff0101232b.html      “35岁,技术生涯即告终结.”这种说法在it界得到众多人认可, ...

  5. artTemplate里一个比不上jQuery tmpl模板的地方就是放一个数组进去它不会自动循环.

    artTemplate里一个比不上jQuery tmpl模板的地方就是放一个数组进去它不会自动循环.

  6. 非阻塞同步算法实战(三)-LatestResultsProvider

    本人是本文的作者,首发于ifeve(非阻塞同步算法实战(三)-LatestResultsProvider) 前言 阅读本文前,需要读者对happens-before比较熟悉,了解非阻塞同步的一些基本概 ...

  7. CentOS 6.5升级Python和安装IPython

    <转自:http://www.noanylove.com/2014/10/centos-6-5-sheng-ji-python-he-an-zhuang-ipython/>自己常用.以做备 ...

  8. jQueryDOM操作笔记

    attr(name[,value]):value(任意|函数) $('*').attr('title',function(index,previousValue){ return previousVa ...

  9. Android studio debug模式获取变量的值

    打断点.debug模式运行,Console界面旁边的Debugger界面,或者在变量上右键add to watches

  10. ue4 plugin的编译加载

    插件Plugin: 本来应该是指一种纯以接口与外界打交道的程序模块,在同一接口背后可以有多种实现,更换实现完全不影响客户端代码(不用重编). 但是在ue4的世界里,插件似乎不是这个意思,仅仅是一种可以 ...