文档章节

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

涂孟超
 涂孟超
发布于 2014/09/26 15:35
字数 230
阅读 1
收藏 0
点赞 0
评论 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
深圳
程序员
数据类型转换(转自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
二进制串反转 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
VC++常用数据类型及其操作详解

一.VC常用数据类型列表 二.常用数据类型转化 2.1数学类型变量与字符串相互转换 2.2 CString及string,char 与其他数据类型的转换和操作 ●CString,string,char的综合比较 ●数学类型与CString...

晨曦之光
2012/03/09
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
深入剖析Java中的装箱和拆箱

原文出处: 海子 自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题。本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装...

刘星石
2016/03/07
37
0
java对象占内存大小分配的初步认识

问题1? java的对象引用占用多少个字节? 问题2? null值占几个字节,boolen值占几个字节? 问题3?对象占用字节大小如何计算? 如下结论都是基于32位系统下,参考资料: http://wenku.baidu...

thinkerfans
2013/01/03
0
0
ArrayList和LinkedList的几种循环遍历方式及性能对比分析

最新最准确内容建议直接访问原文:ArrayList和LinkedList的几种循环遍历方式及性能对比分析 主要介绍ArrayList和LinkedList这两种list的五种循环遍历方式,各种方式的性能测试对比,根据Arr...

Trinea
2013/10/31
0
1
rabbitmq 学习-9- RpcClient发送消息和同步接收消息原理

本身使用RpcClient发送消息与同步接收消息的代码是很简单的,如下: RpcClient client = new RpcClient(channel, exchange, routingKey); String msg = "hello world!"; byte[] result = cl......

tantexian
2016/05/27
79
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

about git flow

  昨天元芳做了git分支管理规范的分享,为了拓展大家关于git分支的认知,这里我特意再分享这两个关于git flow的链接,大家可以看一下。 Git 工作流程 Git分支管理策略   git flow本质上是...

qwfys
今天
2
0
Linux系统日志文件

/var/log/messages linux系统总日志 /etc/logrotate.conf 日志切割配置文件 参考https://my.oschina.net/u/2000675/blog/908189 dmesg命令 dmesg’命令显示linux内核的环形缓冲区信息,我们可...

chencheng-linux
今天
1
0
MacOS下给树莓派安装Raspbian系统

下载镜像 前往 树莓派官网 下载镜像。 点击 最新版Raspbian 下载最新版镜像。 下载后请,通过 访达 双击解压,或通过 unzip 命令解压。 检查下载的文件 ls -lh -rw-r--r-- 1 dingdayu s...

dingdayu
今天
1
0
spring boot使用通用mapper(tk.mapper) ,id自增和回显等问题

最近项目使用到tk.mapper设置id自增,数据库是mysql。在使用通用mapper主键生成过程中有一些问题,在总结一下。 1、UUID生成方式-字符串主键 在主键上增加注解 @Id @GeneratedValue...

北岩
今天
2
0
告警系统邮件引擎、运行告警系统

告警系统邮件引擎 cd mail vim mail.py #!/usr/bin/env python#-*- coding: UTF-8 -*-import os,sysreload(sys)sys.setdefaultencoding('utf8')import getoptimport smtplibfr......

Zhouliang6
今天
1
0
Java工具类—随机数

Java中常用的生成随机数有Math.random()方法及java.util.Random类.但他们生成的随机数都是伪随机的. Math.radom()方法 在jdk1.8的Math类中可以看到,Math.random()方法实际上就是调用Random类...

PrivateO2
今天
2
0
关于java内存模型、并发编程的好文

Java并发编程:volatile关键字解析    volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在...

DannyCoder
昨天
1
0
dubbo @Reference retries 重试次数 一个坑

在代码一中设置 成retries=0,也就是调用超时不用重试,结果DEBUG的时候总是重试,不是0吗,0就不用重试啊。为什么还是调用了多次呢? 结果在网上看到 这篇文章才明白 https://www.cnblogs....

奋斗的小牛
昨天
2
0
数据结构与算法3

要抓紧喽~~~~~~~放羊的孩纸回来喽 LowArray类和LowArrayApp类 程序将一个普通的Java数组封装在LowArray类中。类中的数组隐藏了起来,它是私有的,所以只有类自己的方法才能访问他。 LowArray...

沉迷于编程的小菜菜
昨天
1
0
spring boot应用测试框架介绍

一、spring boot应用测试存在的问题 官方提供的测试框架spring-boot-test-starter,虽然提供了很多功能(junit、spring test、assertj、hamcrest、mockito、jsonassert、jsonpath),但是在数...

yangjianzhou
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部