VisualFreeBasic的编程文档和教程
论坛的首页 勇芳的软件
教程和帮助
  • VisualFreeBasic编程文档
  • 勇芳系列软件帮助说明教程
  • 留言或交流 登录
    登录
    侧边栏壁纸
    博主头像
    勇芳

    • 累计撰写 332 篇文章
    • 累计收到 0 条评论
    • 首页
    • 栏目
      • 论坛的首页
      • 勇芳的软件
      • 教程和帮助
        • VisualFreeBasic编程文档
        • 勇芳系列软件帮助说明教程
      • 留言或交流
      • 登录
    VisualFreeBasic编程文档
    • VisualFreeBasic代码_操作字符串部分文本 2026-1-21
      VisualFreeBasic代码_操作字符串部分文本 LCase 返回字符串的小写副本 Print LCase("AbCdEfG") 输出:abcdefg UCase 返回字符串的大写副本 Print UCase("AbCdEfG") 将产生输出:ABCDEFG InStr 查找字符串中第一个出现的子字符串或字符 从第1个字符查到最后1个字符 '它会返回4 Print InStr("abcdefg", "de") '它将返回0 Print InStr("ABCDEFG", "h") '它将搜索任何字符“f”,“b”,“c”,并返回2,首先遇到“b” Print InStr("ABCDEFG", Any "FBCen") InStrRev 查找字符串中子字符串或字符的最后一次出现 从最后1个字符反向查到第1个字符 '它会返回4 Print InStrRev("ABCdeFG", "de") '它将返回0 Print InStrRev("ABCDEFG", "h") Left 返回字符串的最左边的子串 Dim text As String = "你好,世界" Print Left(text, 4) 将产生输出:你好 Dim text As wString *20 = "你好,世界" Print Left(text, 4) 将产生输出:你好,世 Right 返回字符串的最右边的子串 Dim text As String = "你好,世界" Print Right(text, 4) 将产生输出: 世界 Dim text as wstring * 20="你好,世界" Print Right(text,4) '显示“好,世界” Mid (函数) 返回字符串的子字符串 Print Mid("ABCDEFG", 3, 2) '从第3个字符开始,返回2个字符 Print Mid("ABCDEFG", 3) '从第3个字符开始,一直到最后的字符 将产生输出: CD CDEFG Mid (语句)用另一个字符串覆盖一个字符串的子字符串 Dim text As String text = "abc 123" Print text '显示“abc 123” '用另一个字符串替换文本的一部分 Mid(text, 5, 3) = "456" Print text '显示“abc 456” LSet 左对齐字符串 Dim buffer As String buffer = Space(10) LSet buffer, "91.5" Print "-[" & buffer & "]-" RSet 右对齐字符串 Dim buffer As String buffer = Space(10) RSet buffer, "91.5" Print "-[" & buffer & "]-" Trim 删除字符串左侧和右侧的周围的子字符串或字符 删除前后空格字符 Dim s1 As String = " 卡在中间 " Print Trim(s1) '得到一个前后没空格的字符 删除前后指定字符 Dim s1 As String = "...卡在中间 ..." Print "'" + Trim(s1, Any ".") + "'" Dim s2 As String = "BaaBaaaaB随着你aaBBaaBaa" Print "'" + Trim(s2, "Ba") + "'" Print "'" + Trim(s2, Any "aB") + "'" LTrim 删除一个文本左边连续的子文本或字符 删除前面空格字符 Dim s1 As String = " 卡在中间 " Print LTrim(s1) '无前面空格的字符 删除指定字符 Dim s1 As String = "101事情要做" Print "'" + LTrim(s1) + "'" Print "'" + LTrim(s1, "01") + "'" Print "'" + LTrim(s1, Any "01") + "'" RTrim 删除字符串右侧的周围的子字符串或字符 删除后面空格字符 Dim s1 As String = " 卡在中间 " Print RTrim(s1) '无后面空格的字符 删除指定字符 Dim s1 As String = "文字10101" Print "'" + RTrim(s1) + "'" Print "'" + RTrim(s1, "01") + "'" Print "'" + RTrim(s1, Any "10") + "'"
      • 2026年-1月-21日
      • 95 阅读
      • 0 评论
      VisualFreeBasic编程文档
    • VisualFreeBasic代码_字符转换 2026-1-21
      VisualFreeBasic代码_字符转换 Chr 从一个或多个ASCII整数值返回一串字符 Print "97的ASCII码是:", Chr(97) Print Chr(97, 98, 99) '打印abc Dim s As String = Chr(97, 98, 99) Print s Asc 返回字符的相应ASCII或Unicode整数表示形式 Print "'a'的ascii代码是:", Asc("a") Print "'b'的ascii代码是:", Asc("ABC", 2) 将产生输出: a'的ascii代码是:: 97 B'的ascii代码是:: 98 WChr 返回包含一个或多个Unicode字符的宽字符字符串 Print "20013的UNICODE代码代表的字符是:", WChr(20013) Print "多个UNICODE字符:", WChr(20013, 25991, 32534,31243) 将产生输出: 934的UNICODE代码代表的字符是:中; 多个UNICODE字符:中文编程
      • 2026年-1月-21日
      • 104 阅读
      • 0 评论
      VisualFreeBasic编程文档
    • VisualFreeBasic代码_字符串转换为数字 2026-1-21
      VisualFreeBasic代码_字符串转换为数字 Val 将字符串转换为浮点数 Dim a As String, b As Double a = "2.1E+30xa211" b = Val(a) Print a, b 输出:2.1E+30xa211 2.1e+030 ValInt 将字符串转换为整数 Dim a As String, b As Integer a = "20xa211" b = ValInt(a) Print a, b 输出:20xa211 20 ValLng 将字符串转换为长整数 Dim a As String, b As LongInt a = "20xa211" b = ValLng(a) Print a, b 输出:20xa211 20 ValUInt 将字符串转换为无符号整数 Dim a As String, b As UInteger a = "20xa211" b = ValUInt(a) Print a, b 输出:20xa211 20 ValULng 将字符串转换为无符号长整数 Dim a As String, b As ULongInt a = "20xa211" b = ValULng(a) Print a, b 输出:20xa211 20
      • 2026年-1月-21日
      • 113 阅读
      • 0 评论
      VisualFreeBasic编程文档
    • VisualFreeBasic代码_创建字符串 2026-1-21
      VisualFreeBasic代码_创建字符串 ZString 标准数据类型:8位字符串 (固定长度) 遇到 0 就截断的定长字符,假如第1个字符为 0 那么不管后面有无内容,本字符为空 Dim a As zString * 10 *10 表示空间为10个字符,最后1个保留为0 ,因此最多储存 9个字符,你给它赋值100个字符,多余的将会被丢弃。 String 标准数据类型:8位字符串 (可变长度) 可以包含 0 编码字符的类型,字符串长度可变 Dim a As String 你可以随意赋值任意长度的文字,但受内存限制,一般不能超过1G WString 标准数据类型:16位字符串(固定长度) 遇到 0 就截断的定长字符,假如第1个字符为 0 那么不管后面有无内容,本字符为空 Dim a As wString * 10 *10 表示空间为10个字符,最后1个保留为0 ,因此最多储存 9个字符 StringW 标准数据类型:16位字符串 (可变长度) 可以包含 0 编码字符的类型,字符串长度可变 Dim a As StringW 你可以随意赋值任意长度的文字,但受内存限制,一般不能超过1G Len 返回表达式或数据类型的长度 Dim a As zString ="aa中文" Dim b As wString ="aa中文" print len(a) 输出:6 一个中文占2个 print len(b) 输出:4 每个文字占1个 Print Len(Integer) '返回4 Space 创建一个填充空格的给定长度的字符串(" ") 就是生成几个空格的字符串 Dim a As String a = "x" + Space(3) + "x" Print a '打印:x x WSpace 创建一个填充空格(" ")的给定长度的WString Dim a As WString * 10 a = "x" + WSpace(3) + "x" Print a '打印:x x String (函数) 用特定字符创建并填充一定长度的字符串 Print String( 4, 69 ) '打印:“EEEE” Print String( 5, "确实" ) '打印:“确实确实确实确实确实” Wstring (函数) 填写一定长度的WString,具有一定的宽字符 Print WString( 4, 934 ) Print WString( 5, WStr("确实") )
      • 2026年-1月-21日
      • 88 阅读
      • 0 评论
      VisualFreeBasic编程文档
    • VisualFreeBasic代码_字符串类型分类 2026-1-21
      VisualFreeBasic代码_字符串类型分类 在VB6 中,字符串就一种类型,而在 VFB 里,就有2中类型 一、ASCII编码字符串 (8位,1个字节内存大小) 电脑中的内存和文件,最小单位就是字节,1个字节是8位的2进制,因此称为 8位或1字节。1个字节的数字从 0 到 255 ,可以表示 256个字符。当然 0 表示无字符,字符就 255个。 ASCII编码字符串 以1个字节为1个文字,详细点击此链接查看 为了更好的理解它,我们称它为英文字符,后来为了可以使用中文,就搞了1个中文占用2个英文字来记录常用字,其它不常用和特殊文字,比方火星文等都会变成“?”(问号)造成文字永久丢失。 编程中代码类型 Dim a As ZString *100 =“abc中文” Dim b As String =“abc中文” print len(a),len(b) '打印字符个数 打印结果:7 , 7 常用字符函数:Len Mid Left Right InStr Trim LCase UCase 二、Unicode编码字符串 (16位,2个字节内存大小) 为了更好的使用中文,以及支持全部中文字,衍生出了Unicode编码字符串,我们可以理解为中文字符,不管中文或英文,都占用2个字节内存,可以储存火星文等全系列中文。处理中文一般都推荐这个类型。 编程中代码类型(VB6使用的字符串类型,就是这个) Dim a As WString *100 ="abc中文" Dim b As StringW ="abc中文" print len(a),len(b) '打印字符个数 打印结果:5 , 5 常用字符函数:LenW MidW LeftW RightW InStrW TrimW LCaseW UCaseW 三、固定长度和可变长度 固定长度的字符串类型,就是先申请内存,可以最大装载多少文字。 Dim a As ZString *100 Dim a As WString *100 其中,100 表示可以最多容纳 100个文字,但是最后 FB语言会处理成 0编码字符,表示字符结束,因此,100 就是最多可以容纳 99个文字,你给它超过 99个文字,那么超出部分就丢弃掉。 此时内存占用空间,永远都是 100 个,不管你装载几个文字都不影响内存占用。 注: 英文类型占内存是1个文字1个字节, 中文类型占内存1个文字2个字节 可变长度的字符串类型,就是字符有几个,就申请多少内存。 Dim b As String Dim b As StringW 此时最大装载文字个数,受内存限制,一般最大 1G 内存大小。 二者优点和缺点 固定长度的处理速度快,浪费内存空间 可变长度的处理速度慢,不浪费内存空间 比方字符拼贴:你会发现速度真的无法比。所以,可以根据自己代码需求来使用字符变量类型。 Dim i As Long Dim b As ZString * 100005 for i=0 To 100000 b = b & "a" next Dim a As String for i=0 To 100000 a = a & "a" next Dim bw As WString * 100005 for i=0 To 100000 bw = bw & "a" next Dim aw As Stringw for i=0 To 100000 aw = aw & "a" next 四、字符串类型特殊用法 字符串中某个文字的字符编码 我们可以用以下函数 Dim a As String ="abc" ,b As StringW ="中文字" Print Asc(a,1),AscW(b,1) 其中数字 1 是第几个字符 还有一个效率高的方法,用的是 中括号 [] 不是圆括号 Dim a As String ="abc" ,b As StringW ="中文字" Print a[0],b[0] 数字 0 表示第1个字符,以此类推。 注意 Asc(a,1),AscW(b,1) 属于安全操作,超过字符就返回 0 , a[0],b[0] 是不安全操作,不可以乱来,超过字符长度,软件会崩溃。 String 类型不只是ASCII编码字符串 由于 String 类型 支持 0 字符串,其它字符类型不支持,它就可以装载任何数据,而不单单是文字。String类型可以直接等同于字节数组类型 Dim a As String Dim b() As UByte 很多时候,使用字节数组类型,写代码比较麻烦,那么使用 a As String 就方便多了。 比方函数返回,不支持数组返回,需要返回时就必须使用 a As String : Function Myaaa() As String '支持返回 End Function Function Myaaa() As UByte() '不支持数组返回,编译错 End Function 还有一个字符编码,常用于网页:UTF8 字符编码,那么也是用 a As String 和UTF8 相互转换函数: Utf8toStr StrToUtf8 StringWtoUtf8 Utf8toStringW
      • 2026年-1月-21日
      • 115 阅读
      • 0 评论
      VisualFreeBasic编程文档
    • VisualFreeBasic代码_字符串 2026-1-21
      VisualFreeBasic代码_字符串 字符串,通俗来说,就是一串文本数据。 需要先了解以下几个基础知识 字符串编码,分 ASCII 和 Unicode 。变量类型分别是 ZString 和 WString 可以理解为,英文字符串和中文字符串 当 ZString 和 WString 相遇,不需要我们任何操作,FB语言内部会做编码统一操作。 Dim a As ZString * 10 = "中文" Dim b As WString * 10 = "中文" If a=b Then Print "正确" ZString 和 WString 遇到数据为0 就截断字符,String 可以包含 0 。 String 和 StringW 类型是变长字符串,不需要指定长度。 字符串即时值,就是引号中的文字编码,默认为 ASCII 赋值给 WString 类型时,FB语言内部会自动转换编码后赋值。 当工程属性中,选中 Unicode 模式,此时引号中的文字编码为 Unicode 赋值给 ZString 类型时,FB内部会自动转换编码后赋值。 为了避免这样的编码转换,可以使用 Dim a As ZString * 10 = Str("中文") Dim b As WString * 10 = WStr("中文") 在英文系统中,我们写的中文字会乱码(工程默认是 ASCII 模式) Dim a As ZString * 10 = "中文" Dim b As WString * 10 = "中文" 此时打印 a和b 变量会显示乱码 因此需要下列代码,打印中文才正常显示。 Dim a As zString * 10 = WStr("中文") Dim b As WString * 10 = WStr("中文") 自从有浏览器以后,越来越多字符串编码使用 UTF8 ,此编码用 zString 类型使用。遇到要显示时,才用转换编码函数转换 ASCII 或 Unicode 来使用。没遇到显示,就 zString 类型处理。
      • 2026年-1月-21日
      • 132 阅读
      • 0 评论
      VisualFreeBasic编程文档
    • VisualFreeBasic代码_内存 2026-1-21
      VisualFreeBasic代码_内存 在编程过程中,需要经常和内存打交道,所有的变量,所有的操作,都在内存中进行。 当然我们也可以直接对内存管理。 使用动态内存 Deallocate 释放以前赋值的内存 Allocate 从空闲存储器赋值一块内存 CAllocate 从空闲存储器为一定数量的元素赋值内存,并清除内容 Reallocate 为现有的预留内存块重新赋值存储空间 操作例题: 申请 10个字节大小的内存 Dim p As any Ptr = CAllocate(10) 使用完成后,需要回收内存,不然会发生内存泄漏问题,软件会越占内存越多。 Deallocate p Allocate和CAllocate的区别 Allocate一个获取内存后,内存中原来有什么数据,就什么数据,你永远无法确定是什么内容,而CAllocate,获取内存后,多了一步清空数据操作。 其它内存操作 Clear 清除或初始化一些内存 '创建一个包含100个元素的数组 Dim array(0 To 99) As Integer '将数组的内容清除为0,从第一个元素开始 Clear array(0), , 100 * SizeOf(Integer) '赋值20个字节的内存 Dim As Byte Ptr p = Allocate(20) '将前十个字节中的每一个设置为0 Clear *p, 0, 10 '将接下来的十个字节中的每一个设置为42 Clear p[10], 42, 10 '检查赋值的字节的值 For i As Integer = 0 To 19 Print i, p[i] Next '释放内存 Deallocate p Swap 交换两个变量的值(直接交换指针,不交换数据,速度快) '使用交换命令2个数字: Dim a As Integer, b As Integer Input "输入一个数字:"; a Input "输入另一个数字:"; b If a > b Then Swap a, b Print "数字按升序排列:" Print a, b Poke 将值赋值给内存中的位置。(写入内存) Dim i As Integer, p As Integer Ptr p = @i Poke Integer, p, 420 Print Peek(Integer, p) 会产生输出: 420 Peek 在内存中的地址获取任意类型的值(读取内存) Dim i As Integer, p As Integer Ptr p = @i Poke Integer, p, 420 Print Peek(Integer, p) 将产生输出: 420 SAdd 返回一个指向字符串变量数据的指针 Dim s As String Print SAdd(s) s = "你好" Print SAdd(s) s = "abcdefg,1234567,54321" Print SAdd(s) 远程内存读写 就是读写其它软件(不是自己进程)的内存 读进程内存 Dim by(1023) as ubyte MEM_Get_ANY(进程ID,读地址,@by(0),1024 ) 写进程内存 Dim by(1023) as ubyte MEM_Write(进程ID,地址,@by(0),1024)
      • 2026年-1月-21日
      • 121 阅读
      • 0 评论
      VisualFreeBasic编程文档
    • VisualFreeBasic代码_数组 2026-1-21
      VisualFreeBasic代码_数组 数组是一种基础而强大的数据结构,它允许你存储一系列相同类型的值。在编程中,数组的使用非常广泛,可以用来实现各种算法和数据处理任务。这里我将为你提供一个基本的数组编程教程,涵盖数组的基本概念、声明、初始化、访问、遍历以及一些常见操作。 1. 数组的基本概念 数组是一种线性数据结构,它允许你以索引(通常是整数)访问元素。数组中的每个元素可以通过计算偏移量来快速访问,这使得数组成为处理大量数据时的理想选择。 2. 数组的声明与初始化 静态数组 在大多数编程语言中,你可以在声明数组时指定数组的大小(即数组可以存储的元素数量)。 Dim 数组(99) As Long 从 0 开始到 99 可以保存 100个数据 Dim 数组(10 to 20) As Long 从 10 开始到 20 可以保存 11 个数据 动态数组 即数组的大小可以随着元素的增加或删除而自动调整。 Dim 数组() As Long 刚声明的数组是未初始化状态,然后需要使用数组时,随时改变大小,此时原来有数据将会全部清空 ReDim 数组(99) 要想保留原来数组的内容,需要 ReDim Preserve 数组(99) 让初始化的动态数组为未初始化状态 Erase 数组 数组初始化赋值 就是声明数组同时给数组赋值,都是静态数组,动态不可以。 如果没搞初始化赋值,数组的值,字符为空,数组为0 Dim 字符数组(4) As String={"11","22","33","44","55"} Dim 数值数组(4) As Long = {11, 22, 33, 44, 55} Dim 根据参数来定大小数组(...) As Long = {11, 22, 33, 44, 55,66} 3. 访问数组元素 通过索引来访问数组元素。索引通常是从0开始的。 dim aa as long = 数组(1) 数组(1) =aa 4. 遍历数组 遍历数组意味着按顺序访问数组中的每个元素。这通常通过循环来实现。 Dim 数组(99) As Long, i As Long For i = 0 To 99 数组(i) = Rnd *100 Next For i = 0 To 99 Print i, 数组(i) Next 4. 检索数组大小 LBound 返回数组维度的下限 UBound 返回数组维度的上限 Dim 数组(10 To 20) As Long Print LBound(数组),UBound(数组) 打印结果: 10,20 假如动态数组未初始化,返回 -1 Dim 数组() As Long Print LBound(数组),UBound(数组) 打印结果: -1,-1 4. 遍历数组 4. 遍历数组 5. 数组的常见操作 插入元素:在数组中添加新元素可能需要移动其他元素以为新元素腾出空间,通常用于动态数组。 Dim 数组() As Long, i As Long, u As Long ReDim 数组(100) u=UBound(数组) '获取数组下标 ReDim Preserve 数组(u+1) '增加一个数组并保留原来数据 '假如在50索引插入数组 '腾出50索引空间 For i = u To 50 setp -1 Swap 数组(i),数组(i+1) Next 数组(50) =999 删除元素:从数组中移除元素,并可能需要重新排列剩余元素。 Dim 数组() As Long, i As Long, u As Long, x as long ReDim 数组(100) '假如要删除50索引 x =50 u = UBound(数组) '获取数组下标 If x < 50 Then For i = x To u -1 Swap 数组(i),数组(i+1) Next End If If u = 0 Then Erase 数组 '没数组了 Else ReDim Preserve 数组(u-1) '删除一个数组并保留原来数据 End If 搜索元素:在数组中查找特定元素的索引或是否存在该元素。 Dim 数组(100) As Long, i As Long For i = 0 To UBound(数组) If 数组(i) = 99 Then '找到数据,退出循环 Exit For End If Next 排序:将数组中的元素按照一定顺序排列。 数值类型排序 Dim 数组(100) As Long QuickSortLong(数组(), LCase(数组), UBound(数组)) 字符串类型排序 Dim 数组(100) As String QuickSortStr(数组(), LCase(数组), UBound(数组)) 其它类型排序,需要自己写算法了,反正不存在通用的排序 超范围使用数组 超过声明的数组范围,软件将会崩溃 Dim 数组(1) As Long Print 数组(2) ******软件会崩溃***** 当你的软件发生崩溃时,大多数原因,就是数组超范围使用了。
      • 2026年-1月-21日
      • 129 阅读
      • 0 评论
      VisualFreeBasic编程文档
    • VisualFreeBasic代码_数学 2026-1-21
      VisualFreeBasic代码_数学 都是用来参与数学计算的函数,了解函数名和功能即可,有需要就拿来用,不需要也不用死记硬背。 代数函数 函数名 说明 [Int] 返回数值的整数部分 [Fix] 返回一个数字的整数部分,向零舍入 [Sgn] 返回数字的符号部分 [Abs] 计算一个数字的绝对值 [Frac] 返回数字的小数部分 [Exp] 返回 e 的给定数值表示多少次幂。 [Log] 返回给定数字的自然对数 [Sqr] 返回数字的平方根 几何函数 函数名 说明 [Sin] 返回一个角度的正弦 [Asin] 找出数字的反正弦 [Cos] 返回角度的余弦值 [Acos] 取回一个角的反余弦 [Tan] 返回角度的切线 [Atn] 返回数字的反正切 [Atan2] 返回比例的反正切 其它 函数名 说明 [Randomize] 种子随机数发生器 [Rnd] 返回一个随机的 Double 数值,范围在 [0, 1]之间
      • 2026年-1月-21日
      • 119 阅读
      • 0 评论
      VisualFreeBasic编程文档
    • VisualFreeBasic代码_运算符 2026-1-21
      VisualFreeBasic代码_运算符 运算符是用于执行程序代码运算的符号,它们会针对一个或多个操作数进行运算。运算符的种类繁多,包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符等。下面将详细介绍这些运算符的基本概念和用法。 1. 算术运算符 算术运算符用于执行基本的数学运算,包括加(+)、减(-)、乘(*)、除(/)和取模(%)。 加(+):将两个操作数相加。 dim aa as long = 1+2 ,bb as long = 3+4 aa += bb print aa ,aa+bb 减(-):从第一个操作数中减去第二个操作数。 dim aa as long = 1-2 ,bb as long = 3-4 aa -= bb print aa,aa-bb 乘(*):将两个操作数相乘。 dim aa as long = 1*2 ,bb as long = 3*4 aa *= bb print aa,aa*bb 除(/):当两个操作数都是整数时,执行整数除法,结果也是整数,小数部分被丢弃;当操作数中包含浮点数时,执行浮点数除法,结果保留小数部分。 dim aa as long = 1/2 ,bb as long = 3/4 aa /= bb print aa,aa/bb 取模(Mod):返回两个整数相除的余数。注意,负数取模的规则是结果的正负号由第一个操作数的正负号决定。 dim aa as long = 1 mod 2 ,bb as long = 3 mod 4 aa Mod= bb print aa,aa mod bb 次方(^):计算数的指数次方 dim aa as long = 1 ^ 2 ,bb as long = 3 ^ 4 aa ^= bb print aa,aa ^ bb 2. 关系运算符 关系运算符用于比较两个操作数的大小关系,包括大于(>)、小于(<)、等于(=)、不等于(<>)、大于等于(>=)和小于等于(<=)。 这些运算符返回的结果是布尔值(true或false),用于条件判断。 if 11<>22 or 3>6 then ....... aa = 11= 22 '前面等号是 赋值,后面等号是关系运算 3. 逻辑运算符 逻辑运算符用于执行布尔逻辑运算,包括逻辑与(And)、逻辑或(OR)和逻辑非(Not)。 逻辑与(And):当且仅当两个操作数都为真时,结果才为真。 a = 0 : b = 0 :print (a And b) '输出为 0 a = 1 : b = 0 :print (a And b) '输出为 0 a = 0 : b = 1 :print (a And b) '输出为 0 a = 1 : b = 1 :print (a And b) '输出为 1 逻辑或(Or):当至少有一个操作数为真时,结果就为真。 a = 0 : b = 0 :print (a Or b) '输出为 0 a = 1 : b = 0 :print (a Or b) '输出为 1 a = 0 : b = 1 :print (a Or b) '输出为 1 a = 1 : b = 1 :print (a Or b) '输出为 1 逻辑非(Not):将操作数的布尔值取反。 a = 0 : print Not(a) '输出为 1 a = 1 : print Not(a) '输出为 0 逻辑与或(Eqv) a = 0 : b = 0 :print (a Eqv b) '输出为 1 a = 1 : b = 0 :print (a Eqv b) '输出为 0 a = 0 : b = 1 :print (a Eqv b) '输出为 0 a = 1 : b = 1 :print (a Eqv b) '输出为 1 逻辑蕴含(Imp) a = 0 : b = 0 :print (a Imp b) '输出为 1 a = 1 : b = 0 :print (a Imp b) '输出为 0 a = 0 : b = 1 :print (a Imp b) '输出为 1 a = 1 : b = 1 :print (a Imp b) '输出为 1 逻辑异或(Xor) a = 0 : b = 0 :print (a Xor b) '输出为 0 a = 1 : b = 0 :print (a Xor b) '输出为 1 a = 0 : b = 1 :print (a Xor b) '输出为 1 a = 1 : b = 1 :print (a Xor b) '输出为 0 4. 位运算符 位运算符用于对整数类型的二进制位进行操作,包括按位与(And)、按位或(Or)、按位异或(Xor)、按位取反(Not)、左移(Shl)和右移(Shr)。 按位与(And):对两个操作数的每一位执行逻辑与操作,如果两个对应位都是1,则结果位为1,否则为0。 按位或(Or):对两个操作数的每一位执行逻辑或操作,如果两个对应位至少有一个是1,则结果位为1,否则为0。 按位异或(Xor):对两个操作数的每一位执行逻辑异或操作,如果两个对应位不同,则结果位为1,如果相同,则结果位为0。 按位取反(Not):对操作数的每一位执行逻辑取反操作,将1变为0,将0变为1。 左移(Shl):将操作数的二进制位向左移动指定的位数,左边抛弃,右边补0。 右移(Shr):将操作数的二进制位向右移动指定的位数,具体是算数右移还是逻辑右移取决于编译器,算数右移左边用原来的符号位填充,逻辑右移左边用0填充。 5. 赋值运算符 赋值运算符用于将右侧操作数的值赋给左侧的变量,包括简单赋值(=)和复合赋值运算符(如+=、-=、*=、/=等)。 简单赋值(=):将右侧操作数的值赋给左侧的变量。 复合赋值:在赋值的同时进行算术或位运算,如a+=b等价于a=a+b。 6. 条件运算符(三目运算符) 条件运算符是唯一的三元运算符,格式为 aa = iif(条件表达式, 表达式1 , 表达式2) 如果条件表达式的值为真(非零),则整个条件表达式的值为表达式1的值;如果为假(零),则值为表达式2的值。 7. 其他运算符 除了上述运算符外,还有指针运算符(@和*)、求字节数运算符(sizeof)、强制类型转换运算符((类型))等,它们在特定场景下用于执行特定的操作。 运算符的优先级 不同运算符在表达式中的优先级不同,通常按照算术运算符、关系运算符、逻辑运算符的顺序从高到低排列。在复杂的表达式中,可以使用括号()来改变运算符的默认优先级。 操作者 描述 关联性 CAST 类型转换 N/A PROCPTR 程序指针 N/A STRPTR 字符串指针 N/A VARPTR 变量指针 N/A       [] 字符串索引 Left-to-Right [] 指针索引 Left-to-Right () 数组索引 Left-to-Right () 函数调用 Left-to-Right . 成员访问 Left-to-Right -> 指向成员访问 Left-to-Right       @ 的地址 Right-to-Left * 取数据值 Right-to-Left New 赋值内存 Right-to-Left Delete 取消赋值内存 Right-to-Left       ^ 取幂 Left-to-Right       - 求反 Right-to-Left       * 乘 Left-to-Right / 除以 Left-to-Right       \ 整数除法 Left-to-Right       MOD 余数 Left-to-Right       SHL 位左移 Left-to-Right SHR 位右移 Left-to-Right       + 加 Left-to-Right - 减去 Left-to-Right       & 字符串连接 Left-to-Right       Is 运行时类型信息检查 N/A       = 等于 Left-to-Right <> 不平等 Left-to-Right < 少于 Left-to-Right <= 小于或等于 Left-to-Right >= 大于或等于 Left-to-Right > 大于 Left-to-Right       NOT 求位反码 Right-to-Left       AND 位逻辑与 Left-to-Right       OR 位逻辑或 Left-to-Right       EQV 等价 Left-to-Right IMP 意义 Left-to-Right XOR 位异或 Left-to-Right       ANDALSO 短路逻辑与 Left-to-Right ORELSE 短路逻辑或 Left-to-Right       = 赋值 N/A &= 连接和赋值 N/A += 添加和赋值 N/A -= 减去和赋值 N/A *= 乘法和赋值 N/A /= 除以和赋值 N/A \= 整数分割和赋值 N/A ^= 指数和赋值 N/A MOD= 模数和赋值 N/A AND= 连接和赋值 N/A EQV= 等同和赋值 N/A IMP= 含义和赋值 N/A OR= 位或和赋值 N/A XOR= 位异或和赋值 N/A SHL= 向左移动并赋值 N/A SHR= 向右移动并赋值 N/A LET 赋值 N/A       LET() 赋值 N/A 注意事项 在使用运算符时,需要注意操作数的类型和范围,以避免数据溢出或类型不匹配的问题。 逻辑运算符和关系运算符的结果为布尔值,但在FB语言中通常用整数0表示假,非0值表示真。 在编写代码时,应注意运算符的优先级
      • 2026年-1月-21日
      • 125 阅读
      • 0 评论
      VisualFreeBasic编程文档
    • 20
    • 21
    • 22
    • 23
    • 24
    博主栏壁纸
    博主头像 勇芳

    332 文章数
    0 评论量
    • 军旗记牌器双开,会有一方期会自己变成别的期
    人生倒计时
    最新评论
    链接
    • 公益·寻亲,让爱回家
    • Visual Basic6 语言和控件手册
    • CWindow类库帮助FreeBasic版
    • FreeBASIC 帮助文档中文版
    • Windows GDI 编程手册
    • Windows GDI+ 编程手册
    • SQLite3数据库API手册
    • WebBrowser控件编程手册
    • Win32API参考手册
    • Windows 编程宝典
    • WinHttp参考资料
    • WMI编程手册
    • VisualFreeBasic编程文档
    舔狗日记
    载入天数...载入时分秒...

    © 2025 勇芳软件工作室 版权所有

    ICP备案图标 浙ICP备11006222号-1 | 公安备案图标 33100402331731号

    powered by emlog 浙ICP备11006222号-1