`
jiakechong
  • 浏览: 208014 次
社区版块
存档分类
最新评论

inet_addr 和 汉字转数字方法

阅读更多
函数inet_addr是如何实现将地址转换为数字的?
如:192.168.0.211 转成以后为 3540035776
即把192.168.0.211转成十六进制,如:C0A800[补位]D3,倒过来,D300A8C0(从高位取起)
然后把D300A8C0转成数字为3540035776即所求值。
在DELPHI中要引用这个函数,必须要引用winsock这个包,然后调用inet_addr(IP地址)这个函数
ip地址为字符串指针(Pchar类型),如PChar('192.168.000.211')这个值,返回的是DWORK型(即无符号的,占四个
字节的整型),和DELPHI的long word等同,如
User WinSock;
var
  abc:DWORD;
begin
abc := inet_addr(PChar('192.168.0.211'));
Edit1.Text := IntToStr(abc);

汉字转数字,首先要了解一个汉字占用几个字符?即几个字节?一个汉字占两个字节,即2个字符,2个ASC码值
,这样的话就好办多了,首先把汉字转成ASC码值,再把对应的每个ASC码值转成数字,即是所求的数字
如:我的ASC码值是0xced2[十六进制表示]转成:十进制52946,即为所要求的值,按ALT+52946即可验证此数字是
否准确。
查看方法:程序->附件->字符映射表->高级查看->windows 简体中文->按拼音分类的简体中文 ->查看到对应的
汉字
DELPHI中实现方法为:
数转汉字:  
    sName := '';
    for i := 1 to Length(FPassGroupName) do
    begin
      sName := sName + IntToStr(Integer(FPassGroupName[i]));
    end;
汉转数字:
for i := 1 to Length(sExp) do
          begin
            sNameCode := sNameCode + IntToStr(Integer(sExp[i]));;
          end;
          sStr := sStr + sNameCode;
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics