帮忙解释一下这段vb代码吧??求教了
FunctionToBin(mAsString)AsStringDimcAsStringc=""DoWhilem<>0r=mMod2m=m\2,这一句c=r&cLoopc...
Function ToBin(m As String) As String
Dim c As String
c = ""
Do While m <> 0
r = m Mod 2
m = m \ 2,这一句
c = r & c
Loop
c = Right("00000000" & c, 8),还有这一句重点解释下吧
ToBin = c
End Function
谢谢了 展开
Dim c As String
c = ""
Do While m <> 0
r = m Mod 2
m = m \ 2,这一句
c = r & c
Loop
c = Right("00000000" & c, 8),还有这一句重点解释下吧
ToBin = c
End Function
谢谢了 展开
2个回答
展开全部
Function ToBin(m As String) As String’申明函数
Dim c As String‘申明变量
c = ""’初始化
Do While m <> 0‘当不为零是执行循环
r = m Mod 2’将m的值对2取余后赋值给r,r的值仅为0或1
m = m \ 2‘将m整除后在保存到m。如4\2=2, 5\2=2, 11\2=5 结果舍去了小数部分并且不四舍五入
c = r & c’连字符,本句将前面的r得到的值(0或1)插入到c前面在保存到c里面,"1" & "34" ="134"
Loop'循环尾
c = Right("00000000" & c, 8)‘先用连字符(&)把c(假设此时c=“110011”)的前面补充8个“0”得到“00000000110011”,然后用Right命令取出合并后的字符串的右边8位,得到“00110011”
ToBin = c’函数返回上面的到的结果
End Function
Dim c As String‘申明变量
c = ""’初始化
Do While m <> 0‘当不为零是执行循环
r = m Mod 2’将m的值对2取余后赋值给r,r的值仅为0或1
m = m \ 2‘将m整除后在保存到m。如4\2=2, 5\2=2, 11\2=5 结果舍去了小数部分并且不四舍五入
c = r & c’连字符,本句将前面的r得到的值(0或1)插入到c前面在保存到c里面,"1" & "34" ="134"
Loop'循环尾
c = Right("00000000" & c, 8)‘先用连字符(&)把c(假设此时c=“110011”)的前面补充8个“0”得到“00000000110011”,然后用Right命令取出合并后的字符串的右边8位,得到“00110011”
ToBin = c’函数返回上面的到的结果
End Function
更多追问追答
追问
恩 挺好的 谢谢啊 我再问一下啊 你说去掉m=m/2 可以吗?
追答
我不知道你整个的函数是要求达到什么目的,但是光从编程的本质上来说,如果你m的值不改变的话,你程序是个死循环,因为你的循环判断条件就是根据m的值来的
展开全部
Function ToBin(m As String) As String 一个函数(方法) 名字叫做ToBin 参数是字符串类型 返回类型是字符串
Dim c As String 定义一个变量 c 字符串类型
c = "" 给c赋值为""
Do While m <> 0 你的m是字符串类型 直接用来判断大小了 好歹加个 val 啥的啊 当m不等于0时继续循环
r = m Mod 2 r 没定义 直接使用了 r赋值为m除以2的 余数 值为0或1
m = m \ 2,这一句 把m值除以二 例如m=5 第一次以后等于2 第二次等于1
第三次等于0 但是你的m不是整形 用的好奇葩
c = r & c 将字符串c 的末尾加上一个r 的值
Loop
c = Right("00000000" & c, 8), "00000000" & c 字符串"00000.."和c拼接 然后取从右边 的8个字符
ToBin = c 返回c
End Function
总体功能就是 输入一个字符串
然后 把它转换成 2进制 (只有1和0 组成的数)
然后把"00000000" 和它拼接. "000000..."在前面
然后取 从后面往前数的8个字符
Dim c As String 定义一个变量 c 字符串类型
c = "" 给c赋值为""
Do While m <> 0 你的m是字符串类型 直接用来判断大小了 好歹加个 val 啥的啊 当m不等于0时继续循环
r = m Mod 2 r 没定义 直接使用了 r赋值为m除以2的 余数 值为0或1
m = m \ 2,这一句 把m值除以二 例如m=5 第一次以后等于2 第二次等于1
第三次等于0 但是你的m不是整形 用的好奇葩
c = r & c 将字符串c 的末尾加上一个r 的值
Loop
c = Right("00000000" & c, 8), "00000000" & c 字符串"00000.."和c拼接 然后取从右边 的8个字符
ToBin = c 返回c
End Function
总体功能就是 输入一个字符串
然后 把它转换成 2进制 (只有1和0 组成的数)
然后把"00000000" 和它拼接. "000000..."在前面
然后取 从后面往前数的8个字符
追问
亲 不是取第8个 是取8位数据 不过还是谢谢你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询