重新书写了float型转为十六进制的delphi程序

Function FloatToHex(Value: single): string;

var

l, i: integer;

HexText,tempHexText,temp: String;

begin

SetLength(HexText, 2 * SizeOf(Value));

BinToHex(pchar(@Value), pchar(@HexText[1]), SizeOf(Value));

l := length(HexText);

for i := (l div 2) downto 1 do

begin

temp:=copy(HexText,(2*i-1),2);

tempHexText := tempHexText + temp;

end;

result := tempHexText;

end;

procedure TForm6.addButtonClick(Sender: TObject);

begin

editHar3.Text := FloatToHex(-12.545); // strtofloat(editHar1.Text)

end;

显示结果为 C148B852,结果正确,-12.545~C148B852

注意添加

uses StrUtils{截取字符串单元};

下面是原文:

我们在研究封包技术时,经常会碰到将浮点数转换成十六进制形式。比如在游戏中人物的座标,经常就用浮点数来表示。怎么将浮点数转换成十六进制字符串形式呢?下面我将写出其在DELPHI中的方法。

先讲点背景吧,我们通常说的小数,一般就是指浮点数,而且当值不大的时候,泛指单精度浮点数。在delphi中,Single是单精度浮点数,占用4个字节存储,高精度的Double占用8个字节,Real是borland早期用过的,占用6个字节,现在逐渐淡出了。

通过调用Delphi中的BinToHex函数可以很容易实现其转换。下面是Delphi的原型。

procedure BinToHex(Buffer: PAnsiChar; Text: PAnsiChar; BufSize: Integer); assembler;

const

Convert: array[0..15] of AnsiChar = AnsiString('0123456789ABCDEF');

var

I: Integer;

begin

for I := 0 to BufSize - 1 do

begin

Text[0] := Convert[Byte(Buffer[I]) shr 4];

Text[1] := Convert[Byte(Buffer[I]) and $F];

Inc(Text, 2);

end;

end;

解释一下该函数:内存中地址为Buffer,长度为BufSize的一段数据转成16进制并存入Text所指向的内存地址中,Text的长度至少需要BufSize*2才能放下转换后的数据。

有了这些背景,就可以理解我下面写的代码了。

[delphi] view plaincopy

Function FloatToHex(Value:single):string;

var

HexText: String;

begin

SetLength(HexText,2*SizeOf(Value));

BinToHex(pchar(@Value),pchar(@HexText[1]),SizeOf(Value));

return Hextext

end;

比如在调用的时候,假设传入3.1415,得到的结果输出为560E4940,注意这里的结果是低位在前,高位在后。意思就是40490E56就是我们通常说的3.1415。

你可以用Greatboy写的单精度浮点数转换工具验证。

delphi 浮点数转换成十六进制字符串的方法

我们在研究封包技术时,经常会碰到将浮点数转换成十六进制形式.比如在游戏中人物的座标,经常就用浮点数来表示.怎么将浮点数转换成十六进制字符串形式呢?下面我将写出其在DELPHI中的方法.       先 ...

python 将字节字符串转换成十六进制字符串

想将一个十六进制字符串解码成一个字节字符串或者将一个字节字符串编码成一个十六进制字符串 1)只是简单的解码或编码一个十六进制的原始字符串,可以使用 binascii模块 >>> s ...

python 练习题:请利用Python内置的hex()函数把一个整数转换成十六进制表示的字符串

# -*- coding: utf-8 -*- # 请利用Python内置的hex()函数把一个整数转换成十六进制表示的字符串 n1 = 255 n2 = 1000 print(hex(n1)) pr ...

C语言-数字字符串转换成这个字符串对应的数字(十进制、十六进制)

数字字符串转换成这个字符串对应的数字(十进制.十六进制) (1)数字字符串转换成这个字符串对应的数字(十进制) 要求:这个字符串参数必须包含一个或者多个数字,函数应该把这些数字转换为整数并且返回这个整 ...

Java将其他数据格式转换成json字符串格式

package com.wangbo.util; import java.beans.IntrospectionException; import java.beans.Introspector; i ...

如何将int整型转换成String字符串类型

自动类型转换适用于兼容类型之间从小范围到大范围数据的转换. nt转换成String int i = 10; int b=1: System.out.pritnln(a + b); 里面靠近字符串,所以 ...

javascript把RGB指定颜色转换成十六进制颜色(Converting R,G,B values to HTML hex notation)

Prologue 看见一篇非常好的外国文章,Making annoying rainbows in javascript,事实上我当时非常想把它翻译下来的,可是对于一个连六级都没过的人确实有点难度,一 ...

C#中将字符串转换成Md5值的方法

原文:C#中将字符串转换成Md5值的方法 版权声明:有问题可联系博主QQ:15577969,大家一起相互交流和学习. https://blog.csdn.net/qq15577969/article/ ...

图片转换成十六进制TXT文件

最近学习了图片的转换,就学习了一下图片从二进制转换成十六进制,十六进制TXT文件转换成图片形式. using System; using System.Collections.Generic; usi ...

随机推荐

java系列-安装MySql(三)

第一大步:MySQL安装文件分为两种,一种是msi格式的,一种是zip格式的.如果是msi格式的可以直接点击安装,按照它给出的安装提示进行安装(相信大家的英文可以看懂英文提示),一般MySQL将会安装 ...

精妙SQL语句收集

SQL语句先前写的时候,很容易把一些特殊的用法忘记,我特此整理了一下SQL语句操作.(转) 一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数 ...

HTML5 - 使用JavaScript控制<audio>音频的播放

有时我们需要使用js来控制播放器实现音乐的播放,暂停.或者使用js播放一些音效.   1,通过JavaScript控制页面上的播放器 比如把页面上添加一个用来播放背景音乐(由 ...

Android Studio 错误 Duplicate files copied in APK META-INF/LICENSE.txt

1 .Duplicate files copied in APK META-INF/LICENSE.txt   android { packagingOptions { exclude 'META-I ...

[原创]linux简单之美(一)

原文链接:linux简单之美(一) 话说windows也有syscall,这是必须的.但是win的syscall可以直接call吗?可以是可以但是破费周折,搞成SDT之类的复杂概念.下面看看linux ...

基于mini2440的IIC读写(裸机)

mini2440开发板提供的测试代码过于复杂,让人很难理解,而且有些错误,如GPE14-15不能设置上拉电阻,可是代码里却设置了,虽然无关紧要.为了方便学习,我在闲暇之时我研究了一下.IIC的原理是比 ...

Hadoop学问Eclipse构建Hadoop工程

在此之前的基础Hadoop在官方文件HDFS.MapReduce架构.配置管理是学习,但是,一些地方的官方文件相当含糊的解释. 我们没有发挥人可以体验,某种官方文件似业务规则或要求,但是,真正的细节还 ...

NSRunLoop原理详解——不再有盲点

编程最怕的就是有盲点,不确定,而runloop官网对其提及的又很少:那么看完这篇应该使你有底气很多~ RunLoop整体介绍 An event-processing loop, during whic ...

项目笔记-vue

记录新建vue项目之后的种种. 2019年3月12日,从git上下载了一个vue后台模板的项目,git地址:https://github.com/lin-xin/vue-manage-system ( ...

Java并发编程笔记之Semaphore信号量源码分析

JUC 中 Semaphore 的使用与原理分析,Semaphore 也是 Java 中的一个同步器,与 CountDownLatch 和 CycleBarrier 不同在于它内部的计数器是递增的,那 ...

python把浮点数转换成16进制_delphi 浮点数float转换成十六进制字符串的方法(FloatToHex)...相关推荐

  1. 图片转换成16进制数据,在显示成图片

    1.目的:          在串行,或者网络通信的时候,往往需要把图片解析成16进制的数据,方便数据的传输.而在另一端接收到数据后,在将接收到的数据显示成图片. 2:代码: #include&quo ...

  2. python常用的十进制、16进制之间的转换

    一.整数之间的进制转换: hex(16) # 10进制转16进制 oct(8) # 10进制转8进制 bin(8) # 10进制转2进制 二.字符串转整数 ''' 学习中遇到问题没人解答?小编创建了一 ...

  3. php 字符串转化为16进制,php将字符串转换成16进制的方法

    php将字符串转换成16进制的方法 本文实例讲述了php将字符串转换成16进制的方法.分享给大家供大家参考.具体分析如下: php中可以通过bin2hex函数将字符串转换成16进制的形式输出,bin2 ...

  4. 10进制转换成16进制

    更新中......... 任意2-36进制数转化为10进制数. 建议自己写函数,代码如下: int Atoi(string s,int radix) //s是给定的radix进制字符串 {int an ...

  5. 将字符串转换成16进制

    将字符串转换成16进制 原文:将字符串转换成16进制 1.将普通字符串转换成16进制的字符串. 点击进入推荐链接 class Program {static void Main(string[] ar ...

  6. python定义16进制数组_python 文件转成16进制数组的实例

    如下所示: #! /usr/bin/python2 # coding=utf-8 import numpy import binascii if __name__=='__main__': #my_m ...

  7. java 16进制数组 字符串_byte数组转换成16进制字符串和字符数组的方法

    byte数组转换成16进制字符串String: public class CommonUtil { /** * byte数组转换成16进制字符串 * @param src * @return */ p ...

  8. ip地址转换成16进制long

    <span style="font-size:18px;">public class IpUtil {/*** ip地址转换成16进制long* @param ipSt ...

  9. python实现颜色RGB转换颜色16进制

    python实现颜色RGB转换颜色16进制 超级简单的实现过程 #coding:utf-8def RGB_to_Hex(tmp):rgb = tmp.split(',')#将RGB格式划分开来strs ...

最新文章

  1. Expression Blend实例中文教程(2) - 界面快速入门
  2. win7为什么打开桌面上的计算机很卡很慢,windows7很卡怎么处理_windows7系统卡慢的解决方法...
  3. mysql语句orderby_mysql中的orderby_MySQL
  4. Java 的 IO 很复杂?用思路带领你去battle他!
  5. 【网络通信与信息安全】之深入解析TCP的“拥塞控制”原理
  6. C语言: 函数调用的开销
  7. BZOJ 4817: [Sdoi2017]树点涂色
  8. ECMA6--字符串/数组
  9. [css] 你是怎么设计css sprites(精灵图)的?有哪些技巧?
  10. datagridview 纵向 横向 合并单元格_每日一Excel技巧(熟能生巧):带公式的单元格,快速批量复制、填充...
  11. 服务器找不到硬盘如何解决方案,Linux云服务器磁盘不见了?解决方案在这里
  12. java如何获取wsdl文件,如何使用Java获取WSDL文件中的复杂类型?
  13. 数据预处理_缺失值处理
  14. 5G技术是如何改变我们的生活
  15. 六、mysql性能优化
  16. 微信小程序入门与实战笔记
  17. GIS:不同基准面坐标系转换
  18. win10鼠标右边光圈一直闪烁,原因是
  19. WebBowser 实现淘宝网自动登录
  20. python爬虫 — 爬取豆瓣最受关注图书榜

热门文章

  1. android 线性布局总结
  2. Malware Dev 01 - 免杀之 PPID Spoofing 原理解析
  3. Python办公自动化的18个应用场景
  4. 1.6 Illustrator视图的保存与载入
  5. 华为HCIE-RS(数通datacom)论述题(十)
  6. 孙悟空无姓无名的时候,阎王生死簿是怎么写的呢?
  7. 20154313 刘文亨 EXP6
  8. 量化交易创干货合集送给每一位爱学习的宽客quant
  9. 用自己的电脑做网站服务器,实现外网访问
  10. 我使用的IJK拉流直播播放器