帮忙解释一下这段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
谢谢了
展开
 我来答
wuchao1235
2013-12-10 · TA获得超过736个赞
知道小有建树答主
回答量:397
采纳率:0%
帮助的人:293万
展开全部
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
更多追问追答
追问
恩 挺好的 谢谢啊 我再问一下啊 你说去掉m=m/2  可以吗?
追答
我不知道你整个的函数是要求达到什么目的,但是光从编程的本质上来说,如果你m的值不改变的话,你程序是个死循环,因为你的循环判断条件就是根据m的值来的
0灯下独酌0
2013-12-10 · 超过31用户采纳过TA的回答
知道答主
回答量:103
采纳率:50%
帮助的人:51.7万
展开全部
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个字符
追问
亲 不是取第8个 是取8位数据 不过还是谢谢你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式