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;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值