delphi类型转换 asci与char

ord(char) = asc

chr(asc) = char

inttohex(int,1) = hex (string)

使用AStr[i]取AStr:String中的第i个字符时需要注意的事项:
这里i表示第i个字符,并不是通常的0表示第1个,i表示第i+1个。

二位的16进制转换为10进制:

function HexToInt(hex : string):integer;
var x : array [0..1] of integer;
    i : integer;
    s : string;
begin
  for I := 0 to 1 do
  begin
    try
      if i = 0 then
        s := copy(hex,1,1)
      else    
        s := copy(hex,2,1);
      x[i] := StrToInt(s);
    except
      if s = ‘A‘ then x[i] := 10;
      if s = ‘B‘ then x[i] := 11;
      if s = ‘C‘ then x[i] := 12;
      if s = ‘D‘ then x[i] := 13;
      if s = ‘E‘ then x[i] := 14;
      if s = ‘F‘ then x[i] := 15;
    end;
  end;
  Result := x[0] * 16 + x[1];
end;

优化,16 to 10

function HexToInt(Hex : String) : int64;
var AStr, AHex : String;
    HexLen, i, AH : integer;
    Power : integer;
begin
  AHex := AnsiUpperCase(Hex);
  HexLen := Length(AHex);
  Result := 0;
  Power := 1;
  for I := 0 to HexLen - 1 do
  begin
    AStr := Copy(AHex,HexLen - i);    //从后往前取
    AH := Ord(AStr[1]) - 48;
    if (AH >= 17) and (AH <= 22) then AH := AH -7
    else if (AH < 0) or (AH > 22) or ((AH > 9) and (AH < 17)) then AH := null;
    if i <> 0 then Power := Power * 16;
    Result := Result + AH * Power;
  end;
end;

原文来自: http://blog.chinaunix.net/uid/30148519.html

http://blog.chinaunix.net/uid-30148519-id-4850824.html

时间: 2024-10-29 19:08:47

delphi类型转换 asci与char的相关文章

Arduino中数据类型转换 int转换为char 亲测好使,itoa()函数

由于博主最近在做一个项目,需要采集不同传感器的数据,包括float型的HCHO,以及int型的PM2.5数据.但是最终向服务器上传的数据都得转换为char型才能发送,这是借鉴了一个github上面的实例实现了在Arduino上部署socket使之与服务器进行交互. github实例如下: https://github.com/washo4evr/Socket.io-v1.x-Library 在本项目中多次使用了数据类型转换,前文提到了float和double类型转换为char,如下:http:/

Delphi 类型转换函数(有几个函数没见过,FloatToStrF,FloatToText等等)

Chr 将一个有序数据转换为一个ANSI字符 Ord 将一个有序类型值转换为它的序号 Round 转换一个实型值为四舍五入后的整型值 Trunc 转换一个实型值为小数截断后的整型值 Int 返回浮点数的整数部分 IntToStr 将数值转换为字符串 IntToHex 将数值转换为十六进制数字符串 StrToInt 将字符串转换为一个整型数,如字符串不是一个合法的整型将引发异常 StrToIntDef 将字符串转换为一个整数,如字符串不合法返回一个缺省值 Val 将字符串转换为一个数字(传统Tur

delphi中pchar、char、string的定义与区别

Char是单个字符:PChar 就是指向一个以Null 结尾的每个字符为一个字节的字符串的指针. (可以看成是一个字符串)String是字符数组,以字符#0结尾: Char只占一字节的空间,而Pchar保存的是一个指针,在现在32位的系统中占有1个指针字节的大小.type PChar=^Char; PChar类型是一个指向Char的指针,并使用Delphi的扩展语法.它也能够作为一个String或者是一个Char数组指针来对待. Pchar的用途 1.PChar最经常的使用方式就是作为用C或C+

C++ 中类型转换 xmlChar * 与Char * 转换,Char *与int 转换,Char *与Float转换,int 与portNumBits转换

使用libxml2 得到一个节点的内容: xmlChar *value = xmlNodeGetContent(node) 1.XmlChar 转换成Char char * stream = (char *) value; 2.Char *与  int 转换 int x = atoi(stream); #include "stdio.h" #include "stdlib.h" main() { char *p="1234567"; int x;

类型转换 String——》Char OR Char ——》String

String转换为char 在Java中将String转换为char是非常简单的.1. 使用String.charAt(index)(返回值为char)可以得到String中某一指定位置的char.2. 使用String.toCharArray()(返回值为char[])可以得到将包含整个String的char数组.这样我们就能够使用从0开始的位置索引来访问string中的任意位置的元素. char转换为String 将char转换为String大致有6种方法.总结如下: 1. String s

[No000066]python各种类型转换-int,str,char,float,ord,hex,oct等

int(x [,base ]) #将x转换为一个整数 long(x [,base ]) #将x转换为一个长整数 float(x ) #将x转换到一个浮点数 complex(real [,imag ]) #创建一个复数 str(x ) #将对象 x 转换为字符串 repr(x ) #将对象 x 转换为表达式字符串 eval(str ) #用来计算在字符串中的有效Python表达式,并返回一个对象 tuple(s ) #将序列 s 转换为一个元组 list(s ) #将序列 s 转换为一个列表 ch

byte,short,char的类型转换

<java深入解析>中例子:一.隐式类型转换在平时对byte char short这几个范围较小的类型声明并赋值时,往往忽略了一个问题.在Java源文件当中为变量赋值时经常使用字面常量,这些常量在Java中是用int类型表示的.在为long类型赋值时我们会使用: long l = 123123123L;这是因为在赋值时需要一个long类型的值.那么为什么在对byte char short赋值时没有对应的格式,而只是简单的用int类型的字面常量呢?1.这还是因为Java编译器造福人类地提供了隐式

五、数据类型转换

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _5.数据类型转换 {     class Program     {         static void Main(string[] args)         {             // 隐式类型转换             {                 ushort destinati

CString string char* char 之间的字符转换(多种方法)

在写程序的时候,我们经常遇到各种各样的类型转换,比如 char* CString string 之间的互相转换.首先解释下三者的含义. CString 是一种很有用的数据类型.它们很大程度上简化了MFC中的许多操作(适用于MFC框架),使得MFC在做字符串操作的时候方便了很多.需要包含头文件#include <afx.h>. C++中的string用于便是字符串,功能比较强大.要想使用标准C++中string类,必须要包含#include <string>// 注意是<str