问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

十进制和二进制的转换???

发布网友 发布时间:2022-04-30 16:20

我来回答

2个回答

热心网友 时间:2022-06-27 08:16

在十进制和二进制间转换数字

虽然电脑内部是采用二进制进行运算,但广大程序员一般都会以十进制或者十六进制数据进行开发。不过有时候知道数据的二进制形式还是非常有用的,尤其是在进行逻辑运算或按位运算时,进行二进制转换就更加重要了。本文会介绍如何将一个十进制整数转换成二进制,然后再将其转换为十进制。

将数据转换为二进制其实非常简单,只要按照以下步骤进行即可(X为十进制整数):

1. 对X进行模2运算。结果非0既1。这就是第一位(最右端)二进制数。

2. 将X 除以2,并丢弃余数(也就是用“\”进行整数除法)。

3. 如果上一步结果为0,则结束转换,否则从第一步起继续进行转换。

如果你还不懂,我们举个例子。假设我们要将13转换为二进制形式(记住,转换是从右到左进行的)

1. 13 模2等于1,因此第一位(最右边)二进制代码为1。

2. 13 \ 2等于 6。

3. 6 模2等于 0,因此第二位二进制代码为0。

4. 6 \ 2 等于3。

5. 3 模2 等于1,因此第三位二进制代码为1。

6. 3 \ 2 等于1.

7. 1 模2 等于 1,因此第四位二进制代码为1。

8. 1 \ 2 等于0,这表示转换结束。从右到左排列一下上面的结果,就会得出13的二进制数是1101。

以下VB函数

以下VB函数可以完成十进制转换二进制的工作。另外,这个函数还加入了对二进制长度的判断,如果转换出来的二进制长度低于最小值,函数会自动在二进制字符串前补0。

Public Function DecimalToBinary(DecimalValue As Long, MinimumDigits As Integer)
As String

' Returns a string containing the binary
' representation of a positive integer.

Dim result As String
Dim ExtraDigitsNeeded As Integer

' Make sure value is not negative.
DecimalValue = Abs(DecimalValue)

' Construct the binary value.
Do
result = CStr(DecimalValue Mod 2) & result
DecimalValue = DecimalValue \ 2
Loop While DecimalValue > 0

' Add leading zeros if needed.

ExtraDigitsNeeded = MinimumDigits - Len(result)
If ExtraDigitsNeeded > 0 Then
result = String(ExtraDigitsNeeded, "0") & result
End If

DecimalToBinary = result

End Function

[NextPage]

将二进制转换为十进制

将二进制转换为十进制的过程就是上述过程的逆过程。每一位二进制数都要乘以2的指数,从2的0次幂开始(最右边)乘,第二位是乘以2的1次幂,以此类推。需要注意的是,任何数的0次幂都是1,而任何数的1次幂都是它本身。以下以1101为例进行说明:

1. 第一位是1,1乘以2的0次幂等于1。

2. 第二位是0,0乘以2的1次幂等于0。

3. 第三位是1,1乘以2的2次幂等于4。

4. 第四位是1,1乘以2的3次幂等于8。

5. 8 + 4 + 1 等于13.

以下代码完成二进制到十进制的转换:

Public Function BinaryToDecimal(BinaryValue As String) As Long

' Returns the decimal equivalent of a binary number.

Dim idx As Integer
Dim tmp As String
Dim result As Long
Dim digits As Integer

digits = Len(BinaryValue)
For idx = digits To 1 Step -1
tmp = Mid(BinaryValue, idx, 1)
If tmp = "1" Then result = result + 2 ^ (digits - idx)
Next

BinaryToDecimal = result

End Function

本函数会将非1的任何数字当做0。你可以在代码中加入对数字的检验,以确保给定的二进制字符串中只有0和1。

参考资料:http://www.mf100.com/document/2005-12/859.shtml

热心网友 时间:2022-06-27 08:16

如果要十进制转二进制的话,就用那个数连续除2,余数倒过来就行了;如果要二进制转十进制的话,就依次从末尾乘1 2 4 8 16 24 128 256 512 1024 2048 4096 8192......然后加起来就OK了
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
长春小飞没有车没有房 碳钢的多久生锈 碳钢多久会生锈 碳钢多长时间会开始生锈 碳钢和铝哪个容易生锈 梦见天宫图是什么意思 光遇2023好友树解锁图鉴 光遇二级节点多少个 ...火柴小女孩》《词语手册》里有很多词语的意思的,求告知 暖融融解释 领淘通淘客助手这个软件怎么样? 哪位有完整的《穿越之绝色公主》,可以发给我吗? zhy.0000@163.com 有网址的告诉网址也可以. 10进制和二进制之间怎么转换谢谢了,大神帮忙啊 出轨五年的丈夫,却因离婚前我的一条微信跟我下跪求饶是什么小说 有没谁读过一篇莫言的小说叫《枯河》的啊 未来的婆婆,梦见自己的儿媳在梦里大笑,吉祥不? 梦见未来婆婆给未来儿媳妇一个儿媳妇资格考试是什么寓意? 寻找小说《蒲柳人家》全文。 我今天摸了一个班上一个女生的腿 她就一拳打我肚子上 我刚要捂着肚子倒下她就直接用腿踩着我脖子在墙上 婆婆梦见离婚的儿媳妇? 梦见未来儿媳妇喊叫自己未来婆婆 婆婆梦见到未来的儿、媳妇家 天涯明月刀行会日常钱王令怎么做 微博的浏览记录在哪里 天涯明月刀 余音 天行 天威 什么意思 怪盗基德的经典开场白是...? 求怪盗kid的经典名言 “白色污染”是主要指下列哪一类物质造成的污染? 比亚迪s7人寿保险多少钱? 天涯明月刀和边城浪子什么关系? 引起白色污染的主要物质是二氧化硅吗 excel2013 绝对值(有正负)大于512的十进制数转2进制后求补码,16位显示,再转为16进制数 什么是比特犬 计算机二进制数10110110转换为十进制数是多少 计算机十进制数512转换为八进制数是多少 谁知道 365hddvd新年快乐的最新网址啊 请问二极管点接触型2AP1和面接触型2CP1,这里的2AP1和2CP1分别代表什么意思,是什么的缩写吗? 365HDDVD,的新网址是多少,如果知道的话,把网址发到我的邮箱1772035688@qq.com,谢了!类似的也行! 请问什么叫比特犬 - 信息提示 十进制算式3*512+7*64+4*8+5的运算结果对应的二进制数是??? 求详解,谢谢 365日本面膜使用方法 用过需要清洗干净吗 怎么训练比特犬 93把十进制513转换成二进制 为什么74190的加法计数器的cp1端要和q0相连接? 什么意思? 比特犬乱叫怎么办,如果训练比特犬不乱叫 cp开头邮件到底是什么?国内的邮件怎会么还需用cp开头的啊? 谁能帮我查下此邮件,编号:CP185267999CN谢 365hddvd新地址,邮箱gxm8715861@163.com 365hddvd新年快乐地址604888115@qq.com 比特犬怎么算是开口 - 信息提示 什么是比特精神?