为什么负数(长整型)在->二进制->十进制转换后变成正数啦?
Private Sub Command1_Click()
Dim f As Long, s As String, d As Long
f = -1234567
s = DecimalToBinary(f, 20)
d = BinaryToDecimal(s)
f = 0
End Sub
Private Function BinaryToDecimal(BinaryValue As String) As Long
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
Private Function DecimalToBinary(DecimalValue As Long, MinimumDigits As Integer) As String
Dim result As String
Dim ExtraDigitsNeeded As Integer
Do
result = CStr(DecimalValue Mod 2) & result
DecimalValue = DecimalValue \ 2
Loop While DecimalValue > 0
' 如果转换出来的二进制长度低于给定的最小值则添0
ExtraDigitsNeeded = MinimumDigits - Len(result)
If ExtraDigitsNeeded > 0 Then
result = String(ExtraDigitsNeeded, "0") & result
End If
DecimalToBinary = result
End Function
相关推荐
Jenkins2.346.1 待安装hpi文件
Jenkins2.346.1使用git、maven、node所需的安装包:hpi文件后缀
BTS7960大功率电机驱动板设计:原理图、PCB与STM32实战
在直流电机驱动方案中,L298N与TB6612分别受限于压降大和电流小,面对775电机这类大功率负载往往力不从心。BTS7960作为英飞凌集成半桥芯片,凭借低导通内阻与43A的电流能力,搭配双芯片构成H桥,成为10A以上大电流驱动的可靠选择。从半桥到全桥的电路组合、电流检测路径设计、PCB大电流走线与散热处理,再到与STM32的PWM对接和采样滤波,每个环节都直接影响系统稳定性。本文基于一套可直接打样的工程文件,梳理原理图关键节点、Layout取舍以及实际调试中遇见的直通、温升和ADC跳变问题,面向机器人、
BTS7960大功率电机驱动模块:原理图与PCB设计实战解析
直流电机驱动是嵌入式硬件中的经典场景,尤其是机器人底盘、电动绞盘和工业推杆等需要大电流持续输出的应用,对驱动方案提出严苛要求。传统的L298N、TB6612等芯片在小电流场景尚可,但面对24V电压、十几安培电流时往往力不从心。H桥拓扑作为电机正反转控制的核心架构,其性能很大程度上取决于功率器件的选型与电路设计。英飞凌BTS7960半桥驱动芯片内部集成P沟道和N沟道MOSFET,配合死区控制与保护电路,能简化大功率H桥设计。本文围绕实际项目中的BTS7960电机驱动模块,从原理图引脚逻辑、电流检测电路,到PC
从零到一:基于STM32F103的自动循迹小车设计与实现
本文详细介绍了基于STM32F103单片机的自动循迹小车设计与实现全过程,涵盖硬件选型、电路设计、软件算法及系统调试。通过优化PID控制算法和多传感器数据融合,显著提升小车的循迹精度和弯道通过速度,为嵌入式系统开发者提供可直接落地的项目经验。
内网jenkins(2.346.1)部署离线下载插件
内网jenkins(2.346.1)部署离线下载插件


VB基础类
