文档章节

将 4 个 Byte 合成 1 个 Integer 的五种方法 - 回复 "三足乌" 的问题

涂孟超
 涂孟超
发布于 2014/09/26 15:35
字数 230
阅读 1
收藏 0

问题来源: http://www.cnblogs.com/del/archive/2010/04/21/1717584.html#1809298

//方法 1: 共用内存
procedure TForm1.Button1Click(Sender: TObject);
var
  bf: record b1,b2,b3,b4: Byte end;
  i: Integer absolute bf;
begin
  bf.b1 := $CC;
  bf.b2 := $DD;
  bf.b3 := $EE;
  bf.b4 := $FF;
  ShowMessageFmt('%x', [i]); //FFEEDDCC
end;

//方法 2: 位运算
procedure TForm1.Button2Click(Sender: TObject);
var
  i: Integer;
begin
  i := $CC or ($DD shl 8) or ($EE shl 16) or ($FF shl 24); //不用括号也可
  ShowMessageFmt('%x', [i]); //FFEEDDCC
end;

//方法 3: 使用函数
procedure TForm1.Button3Click(Sender: TObject);
var
  i: Integer;
begin
  i := MakeLong(MakeWord($CC,$DD), MakeWord($EE,$FF));
  ShowMessageFmt('%x', [i]); //FFEEDDCC
end;

//方法 4: 从静态数组...
procedure TForm1.Button4Click(Sender: TObject);
var
  bs: array[0..3] of Byte;
  P: PInteger;
begin
  bs[0] := $CC;
  bs[1] := $DD;
  bs[2] := $EE;
  bs[3] := $FF;
  P := @bs;
  ShowMessageFmt('%x', [P^]); //FFEEDDCC
end;

//方法 5: 从动态数组...
procedure TForm1.Button5Click(Sender: TObject);
var
  bs: array of Byte;
  P: PInteger;
begin
  SetLength(bs, 4);
  bs[0] := $CC;
  bs[1] := $DD;
  bs[2] := $EE;
  bs[3] := $FF;
  P := @bs[0];
  ShowMessageFmt('%x', [P^]); //FFEEDDCC
end;

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2010/04/24/1719378.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
二进制串反转 Reverse Bits

问题: Reverse bits of a given 32 bits unsigned integer. For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represe......

叶枫啦啦
2017/08/22
0
0
数据类型转换(转自CSDN)

int i = 100; long l = 2001; float f=300.2; double d=12345.119; char username[]=”程佩君”; char temp[200]; char *buf; CString str; _variant_t v1; _bstr_t v2; 一、其它数据类型转换......

文艺小青年
2017/06/29
0
0
Netty模拟redis服务器

Redis的客户端与服务端采用叫做 RESP(Redis Serialization Protocol)的网络通信协议交换数据,客户端和服务器通过 TCP 连接来进行数据交互, 服务器默认的端口号为 6379 。客户端和服务器发送...

ksfzhaohui
2016/08/28
3.7K
10
VC++常用数据类型及其操作详解(非常经典,共同分享)

友情提示: 为了方便你更好的学习和阅读,也更好的体现尊重原创作者的劳动成果,请您直接查看转载原本链接: http://snailflying.blog.hexun.com/8219350d.html ==========================...

长平狐
2013/01/06
1K
0
关于Java你可能不知道的10件事

关于Java你可能不知道的10件事 本文由 ImportNew - Jerry Lee 翻译自 Jooq。欢迎加入翻译小组。转载请参见文章末尾的要求。 呃,你是不是写Java已经有些年头了?还依稀记得这些吧: 那些年,...

enosh
2014/11/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ui2code中的深度学习+传统算法应用

背景 在之前的文章中,我们已经提到过团队在UI自动化这方面的尝试,我们的目标是实现基于 单一图片到代码 的转换,在这个过程不可避免会遇到一个问题,就是为了从单一图片中提取出足够的有意...

阿里云官方博客
27分钟前
2
0
1-2 【包子mysql系列】, 对mysql的innoDB加锁分析

innoDB的事务,是基于锁来实现的,用到事务不自然就会用到锁,而如果对锁理解的不通透,很容易造成线上问题。 数据库加锁的分析,和事务的引擎,隔离级别,索引,主键索引都有关系, 如果去考...

爱吃大肉包
40分钟前
0
0
插入排序

/** * 插入排序 * @Title: insert * @Description: TODO(这里用一句话描述这个方法的作用) * @param 参数 * @return void 返回类型 * @throws */ static void insert(int[] arr ){ for(int i......

yzzzzzzzz
43分钟前
2
0
python Kmeans算法解析

一. 概述 首先需要先介绍一下无监督学习,所谓无监督学习,就是训练样本中的标记信息是位置的,目标是通过对无标记训练样本的学习来揭示数据的内在性质以及规律。通俗得说,就是根据数据的一...

终日而思一
43分钟前
2
0
Nginx+Keepalived实现站点高可用

Nginx+Keepalived实现站点高可用

吴伟祥
44分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部