易语言数据类型之间的秘密

本文介绍了易语言中字节和文本数据类型的转换原理,探讨了整数型、长整数型的存储长度以及取值范围。内容包括正负整数的计算方式、有符号位和无符号位的概念,以及编码在文本存储中的作用,如ASCII和Unicode的区别。同时,文章还提到了逻辑型数据转换为字节集的特殊处理方式。
摘要由CSDN通过智能技术生成

上期讲了字节的规格和字节集内单独字节的处理方法,这期我们来讲字节与文本的转换,字节数据在与文本的转换是会跟照编码来找字符的样子,比如字节集 {255,0,0,0} 在到字节集中使用255的整数便可以达到,但如果我们把数据放到256,便会发现,数据进阶了!

字节集数据变为了:{0,1,0,0}

由此我们可以看出如果直接将整数数据转换为字节集的话会得到的是整数的存储结构,所以易语言中整数的存储是4个字节的存储,而一个字节占8bit,所以整数型能够占32Bit的长度,超出这个长度就意味着大家都知道的溢出了!通过计算 255255255*255 我们可以知道这个整数型的最大存储数:4,228,250,625 在很多时候这个长度足够大家使用了,但有时候却不够用这时候长整数等就可以来替代整数型。

(长整数可以达到8个字节,也就是64Bit的存储长度)

刚才我们运算的都是正整数,那如果是负整数呢?刚才我们计算出来的其实是整数型的最小数到最大数的长度,那么两头的最大值,是由-2,147,483,648~2,247,483,647;

这就比较玄学,我们刚才把四个字节填满得到的是4,228,250,625,而这两头的长度加起来并没有和刚才我们填满的数字有多少相似。因为整数型并不是把每个位都填为255就可以计算出最大值,真正的计算方程应该是这样的,UP主总结了一下 :假如这是一个32Bit的整数数据,那么他的计算方式 就是 -2(32-1)~2(32-1) 在有符号位的整数中我们在最大值需要-1 例如:[2^(32-1) ]-1,无符号位的整数型的最大值就是 2^(32-1),公式就是 2^(占位长度-1);

那么短整数和

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PROCESSENTRY32是一个易语言中的数据类型,用于描述进程的信息。它包含了进程的各种属性,如进程ID、父进程ID、线程计数、进程全名等。下面是PROCESSENTRY32的结构和各个字段的含义: 1. dwSize:结构的大小,以字节为单位。 2. cntUsage:此进程的引用计数。 3. th32ProcessID:进程ID。 4. th32DefaultHeapID:进程默认堆ID。 5. th32ModuleID:进程模块ID。 6. cntThreads:此进程开启的线程计数。 7. th32ParentProcessID:父进程ID。 8. pcPriClassBase:线程优先权。 9. dwFlags:保留字段。 10. szExeFile:进程全名,以字节为单位。 使用PROCESSENTRY32结构可以获取进程的各种信息,比如进程ID、进程全名等。可以通过调用CreateToolhelp32Snapshot函数创建一个进程快照,然后使用process32First和Process32Next函数遍历进程快照,获取每个进程的信息。 下面是一个示例代码,演示如何使用PROCESSENTRY32结构获取进程的信息: ```easylanguage // 导入API函数 import("kernel32.dll", "CreateToolhelp32Snapshot", "Process32First", "Process32Next", "CloseHandle") // 定义PROCESSENTRY32结构 struct PROCESSENTRY32 { dwSize: int; // 结构大小 cntUsage: int; // 此进程的引用计数 th32ProcessID: int; // 进程ID th32DefaultHeapID: int; // 进程默认堆ID th32ModuleID: int; // 进程模块ID cntThreads: int; // 此进程开启的线程计数 th32ParentProcessID: int; // 父进程ID pcPriClassBase: int; // 线程优先权 dwFlags: int; // 保留 szExeFile: byte[256]; // 进程全名 } // 创建进程快照 snapshot := CreateToolhelp32Snapshot(0x00000002, 0) // 初始化PROCESSENTRY32结构 entry := PROCESSENTRY32{dwSize: sizeof(PROCESSENTRY32)} // 获取第一个进程的信息 Process32First(snapshot, &entry) // 遍历进程快照,输出每个进程的信息 while Process32Next(snapshot, &entry) do { // 输出进程ID和进程全名 print("进程ID: ", entry.th32ProcessID) print("进程全名: ", entry.szExeFile) } // 关闭进程快照句柄 CloseHandle(snapshot) ``` 这段代码使用了CreateToolhelp32Snapshot函数创建了一个进程快照,然后使用Process32First和Process32Next函数遍历进程快照,获取每个进程的信息,并输出进程ID和进程全名。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值