Byte,TBytes,array of Byte, array[0..9] of byte的区别
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的区别的更多相关文章
- '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 今 ...
- 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 ...
- 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 ...
- 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 ...
- 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 ...
- 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 ...
- 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 ...
- byte数组与int,long,short,byte转换 (转载)
byte数组和short数组转换 public short bytesToShort(byte[] bytes) { return ByteBuffer.wrap(bytes).order(ByteO ...
- Array.prototype.slice && Array.prototype.splice 用法阐述
目的 对于这两个数组操作接口,由于不理解, 往往被误用, 或者不知道如何使用.本文尝试给出容易理解的阐述. 数组 什么是数组? 数组是一个基本的数据结构, 是一个在内存中依照线性方式组织元素的方式, ...
随机推荐
- 生成SSH key
1.打开终端 2.输入cd ~/.ssh 3.输入ssh-keygen -t rsa -C (邮箱) 4.前往文件夹 /Users/admin/.ssh/id_rsa 5.找到id_rsa.pub , ...
- VMware Workstation+Linux+Xshell+Xftp+MySQL+SQLyog 配置
这些天在搞这些个东西做项目,配置较繁,这里记下安装过程中的要点. 1.VMware Workstation 主要是 NAT 方式联网的问题,详述如下,来自网络. NAT 配置那里注意网关,虚拟机中网关 ...
- RIDE安装遇到的问题及解决方法
1.按照虫师的方法,下载的wxpython3.0 ,启动robotframework-ride,无效,因为版本不一致,所以我又根据终端提示的网址:http://sourceforge.net/proj ...
- SQLSERVER进程CPU使用率100%
解决SQLSERVER2008 CPU使用率99%: 1.dbcc checkdb 重建索引 2.檢查有沒有死鎖 -- sp_lock SELECT request_session_id spid , ...
- intellij,eclipse,vs2013快捷键
如何跳转到上一次编辑的位置,即如何跳到上一个光标所在的位置? intellij: Command+Alt+左方向键:上一光标的位置 Command+Alt+右方向键:下一光标的位置 定位到最后编辑位置 ...
- sublime插件 TortioseSVN
TortioseSVN 可以安装在sublime中,实现svn文件的增加.删除.更新.提交等功能(TortioseSVN用在window系统中,linux安装svn) 安装: 首先在sublime中搜 ...
- ssh注解整合
ssh注解整合 导入java包 配置struts2环境 1. 创建struts.xml配置文件 <?xml version="1.0" encoding="UTF- ...
- JavaScript中关于时间的知识点
1.计算时间差,天数,小时数,余数 var begintime_ms = Date.parse(new Date(begintime.replace(/-/g, "/"))); / ...
- 搭建高可用mongodb集群(三)—— 深入副本集内部机制
在上一篇文章<搭建高可用mongodb集群(二)—— 副本集> 介绍了副本集的配置,这篇文章深入研究一下副本集的内部机制.还是带着副本集的问题来看吧! 副本集故障转移,主节点是如何选举的? ...
- 两种方法实现用CSS切割图片只取图片中一部分
切割图片这里不是真正的切割,只是用CSS取图片中的一部分而已,主要有两种方式,一是做为某一元素的背景图片,二是用img元素的属性.下面有个不错的示例,大家可以参考下 切割图片这里不是真正的切割,只是用 ...