为什么92%的DevOps工程师在VMware里部署k3s都漏掉这一步?——kube-vip高可用接管失效深度复盘

更多请点击: https://intelliparadigm.com

第一章:VMware环境下k3s集群部署的典型误区与高可用困局

在VMware vSphere环境中部署k3s时,许多团队误将轻量级定位等同于“无需架构设计”,导致集群在生产场景中频繁遭遇单点故障、证书漂移和节点失联等问题。k3s虽简化了Kubernetes组件,但其默认单节点嵌入式etcd模式在虚拟化环境中极易因vCPU抢占、内存 ballooning 或存储延迟而触发leader频繁切换。

常见部署误区

  • 直接使用默认 k3s server 启动命令部署多节点集群,未显式启用嵌入式etcd高可用模式
  • 忽略VMware Tools时间同步配置,造成节点间NTP偏移超500ms,触发k3s证书校验失败
  • 将所有控制平面节点部署在同一ESXi主机或共享数据存储上,丧失基础设施层容错能力

etcd高可用启动关键指令

# 在首节点初始化嵌入式etcd集群(需指定唯一node-name及data-dir)
sudo k3s server \
  --cluster-init \
  --node-name k3s-master-01 \
  --data-dir /var/lib/rancher/k3s-server-01 \
  --tls-san 192.168.10.100 # VIP或负载均衡器地址

# 在后续节点加入时,必须指定--server和--token,并复用相同--data-dir路径结构
sudo k3s server \
  --server https://192.168.10.100:6443 \
  --token <shared-secret> \
  --node-name k3s-master-02 \
  --data-dir /var/lib/rancher/k3s-server-02

VMware环境关键配置对照表

配置项推荐值风险说明
vCPU分配静态预留 ≥2 vCPU,禁用CPU热添加动态vCPU调整会中断k3s agent心跳检测
内存策略预留100%内存,关闭内存ballooningballooning触发时k3s进程可能被OOM Killer终止
存储类型厚置备延迟置零(Eager Zeroed Thick)精简置备在I/O高峰时引发写阻塞,影响etcd提交延迟

证书与网络连通性验证流程

graph TD A[检查各节点系统时间偏差] --> B{偏差 ≤ 100ms?} B -->|否| C[启用VMware Tools NTP同步并重启ntpd] B -->|是| D[执行 kubectl get nodes -o wide] D --> E{全部Ready且InternalIP可达?} E -->|否| F[检查防火墙:6443/8472/10250端口开放] E -->|是| G[集群状态正常]

第二章:k3s在VMware中的基础架构设计与关键约束

2.1 VMware网络模型与k3s CNI选型的耦合关系分析

VMware底层网络约束
VMware vSphere默认使用标准交换机(vSS)或分布式交换机(vDS),其端口组(Port Group)策略直接影响容器网络流量路径。当k3s节点部署在VM上时,CNI插件必须适配vSphere的VLAN隔离、MAC学习限制及NSX-T Overlay兼容性。
k3s CNI选型关键维度
  • 轻量性:k3s默认Flannel(host-gw模式)不依赖额外组件,但无法穿透vDS VLAN trunk;
  • 策略集成:Calico需启用BPF模式以绕过vSphere内核桥接限制;
  • IPAM协同:VMware NSX-T CNI原生支持IP地址池与vCenter子网同步。
典型配置冲突示例
# k3s agent启动参数中CNI冲突场景
--flannel-backend=host-gw
# 若vSphere端口组启用了Port Security(禁止MAC泛洪),host-gw将导致Pod间ARP失败
该配置忽略vSphere端口安全策略,导致ARP响应被vDS丢弃。解决方案需将Flannel切换为vxlan后端,并在vDS上启用IGMP Snooping以支持多播泛洪。
CNI方案vSS兼容性vDS VLAN透传NSX-T集成度
Flannel (vxlan)⚠️ 需禁用Port Security
Calico (BPF)✅(需NSX-T 4.0+)

2.2 虚拟机资源配置策略:CPU热添加、内存预留与NUMA对齐实践

CPU热添加配置示例
<vcpu placement='static' cpuset='0-3'>2</vcpu>
<cpu mode='host-passthrough'>
  <feature policy='require' name='vmx'/>
</cpu>
<features>
  <acpi/>
  <apic/>
</features>
该配置启用ACPI/APIC支持以保障热添加可靠性; cpuset='0-3'限定可添加范围,避免跨NUMA节点调度。
内存预留与NUMA绑定策略
  • 内存预留需结合memtune设置hard_limitmin_guarantee
  • NUMA对齐强制使用<numatune><memory mode='strict' nodeset='0'/></numatune>
参数推荐值说明
cpu.cfs_quota_us-1(不限制)配合热添加动态伸缩
memory.min4G保障最低内存水位,防OOM Kill

2.3 VMware Tools增强功能对k3s节点健康探针的影响验证

健康探针行为差异观测
启用VMware Tools后,`kubelet` 的 `node-status-update-frequency` 与虚拟机心跳机制产生协同效应,导致 `/healthz` 响应延迟波动。
关键参数对比表
配置项未安装Tools启用Tools(v12.4+)
NodeReady transition latency>8s<2s
systemd watchdog timeoutignoredhonored via vmtoolsd
探针超时配置验证
# /var/lib/rancher/k3s/agent/etc/k3s-agent.toml
[node-monitor-grace-period = "20s"]
[probe-timeout = "3s"]
该配置在VMware Tools启用后生效更稳定:`vmtoolsd` 将宿主机电源/挂起事件实时同步至guest OS,避免因虚拟机暂停导致的 `kubelet` 心跳丢失误判。
验证步骤
  1. 执行 sudo systemctl stop vmtoolsd 模拟服务中断
  2. 观察 kubectl get nodes -o wideReady 状态变化周期
  3. 对比 journalctl -u k3s | grep "NodeStatusUpdate" 时间戳偏差

2.4 克隆模板与快照机制下kubelet证书绑定失效的根因复现

证书绑定失效触发路径
当虚拟机通过克隆模板快速部署时,kubelet 启动时读取的 `/var/lib/kubelet/pki/kubelet-client-current.pem` 仍沿用源节点证书,但 `node-name` 与 CSR 中的 `CN` 不匹配:
csr, err := x509.ParseCertificateRequest(pemBytes)
if err != nil {
    return fmt.Errorf("failed to parse CSR: %v", err)
}
// 此处 CN = "system:node:old-node-01",但实际 hostname = "new-node-02"
if csr.Subject.CommonName != fmt.Sprintf("system:node:%s", hostname) {
    return errors.New("CN mismatch: kubelet identity binding broken")
}
该校验在 `kubeadm join --certificate-key` 流程中被 kubelet CSR 自动批准逻辑绕过,导致 RBAC 权限继承错误。
关键参数对比
场景node-nameCSR CN证书有效期
原始节点old-node-01system:node:old-node-01365d
克隆节点new-node-02system:node:old-node-01365d(未更新)
修复验证步骤
  1. 清空 `/var/lib/kubelet/pki/` 下所有证书与私钥
  2. 重启 kubelet 触发 CSR 重签
  3. 确认 apiserver 中 CSR 状态为 Approved 且 CN 匹配新 hostname

2.5 vSphere CSI驱动与k3s本地存储插件(local-path)的协同配置要点

角色边界划分
vSphere CSI驱动负责对接vCenter提供持久化块存储(如VSAN、VMFS),而 local-path仅管理节点本地磁盘。二者不可混用同一PV,需通过StorageClass明确隔离:
# local-path-sc.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: local-path
provisioner: rancher.io/local-path
volumeBindingMode: WaitForFirstConsumer
该配置启用延迟绑定,避免Pod调度前误分配本地路径; volumeBindingMode确保Pod所在节点存在可用本地目录。
资源冲突规避
  • vSphere CSI的PV必须标注storage.kubernetes.io/allow-volume-expansion: true
  • local-path不支持扩容,其PV应禁用allowVolumeExpansion
典型共存场景对比
维度vSphere CSIlocal-path
适用负载有状态服务(如PostgreSQL主从)临时缓存、CI构建卷
故障域集群级高可用单节点绑定,无跨节点迁移能力

第三章:kube-vip高可用接管机制原理与VMware特异性适配

3.1 ARP/NDP通告在vSphere分布式交换机(vDS)下的广播域穿透实验

实验拓扑与关键约束
vDS默认启用“MAC地址更改”和“混杂模式”策略限制,ARP/NDP通告无法跨端口组广播。需显式配置端口组的“通知开关”(Notify Switches)为 true 并禁用“伪线程保护”。
vDS端口组关键配置项
参数默认值穿透必需值
Notify Switchesfalsetrue
Forged Transmitsfalsetrue
MAC Address Changesfalsetrue
ARP通告触发命令示例
# 强制发送无请求ARP通告(IPv4)
arping -U -I ens192 192.168.10.10

# 发送邻居通告(IPv6,需启用ndp)
ip -6 neigh replace 2001:db8::100 dev ens192 nud permanent
arping -U 表示“无请求更新”,强制刷新下游物理交换机ARP缓存; nud permanent 将NDP条目设为永久态,绕过vDS对临时邻居发现的过滤策略。

3.2 kube-vip静态IP绑定与VMware Port Group安全策略(MAC地址更改/伪传输)冲突解析

冲突根源:kube-vip的ARP通告与vSphere安全策略博弈
kube-vip通过ARP广播宣告VIP,但VMware Port Group默认启用“MAC地址更改”和“伪传输”防护,拒绝非注册MAC的流量。
关键配置对比
策略项默认值kube-vip要求
MAC地址更改拒绝允许
伪传输拒绝允许
修复配置示例
# 在vSphere中为承载kube-vip的Port Group执行:
esxcli network vswitch standard portgroup set \
  --portgroup-name="k8s-mgmt" \
  --mac-address-changes=true \
  --forged-transmits=true
该命令显式启用两项策略,使ESXi允许kube-vip以非初始MAC发送ARP响应及VIP流量,避免网络隔离。参数 --mac-address-changes解除MAC绑定限制, --forged-transmits允许伪造源MAC的VIP数据包转发。

3.3 控制平面VIP在HA故障转移场景下的会话保持与连接重置行为观测

连接状态迁移路径
故障转移时,主控节点宕机触发VIP漂移,新主节点需接管TCP连接状态。但控制平面(如etcd API、kube-apiserver)默认不共享连接状态,导致客户端连接被RST。
实测TCP重置行为
# 抓包观测到的典型RST序列
12:34:56.789 IP 10.0.1.5.52042 > 10.0.0.100.6443: Flags [S], seq 123456789
12:34:56.792 IP 10.0.0.100.6443 > 10.0.1.5.52042: Flags [S.], seq 987654321, ack 123456790
12:34:56.793 IP 10.0.1.5.52042 > 10.0.0.100.6443: Flags [R], seq 123456790
该RST由新主节点内核TCP栈发起——因未同步原连接的TIME_WAIT或ESTABLISHED状态,视为非法报文直接丢弃并复位。
关键参数影响
  • net.ipv4.tcp_tw_reuse=1:允许TIME_WAIT套接字重用,缓解短连接风暴
  • net.ipv4.ip_vs_conntrack=0:关闭IPVS连接跟踪,避免状态不一致

第四章:漏掉的关键一步——kube-vip在VMware环境中的强制加固实践

4.1 启用--arp-broadcast-fallback并绕过vCenter DVS IGMP Snooping限制

问题根源分析
vCenter 分布式交换机(DVS)启用 IGMP Snooping 后,会抑制未知组播流量,导致 Calico 或 Cilium 等 CNI 的 ARP 请求被丢弃,引发跨节点 Pod 通信失败。
关键参数启用
需在 kube-proxy 启动参数中显式启用广播回退机制:
# kube-proxy 启动参数片段
--proxy-mode=iptables \
--arp-broadcast-fallback=true \
--cluster-cidr=10.244.0.0/16
说明:`--arp-broadcast-fallback=true` 强制 kube-proxy 在无法通过组播解析对端 MAC 时,改用全端口域 ARP 广播请求,绕过 DVS 对 IGMP 查询的拦截逻辑。
配置兼容性对比
特性默认行为启用 --arp-broadcast-fallback 后
ARP 解析方式依赖 IGMP 组播通告自动降级为二层广播
DVS IGMP Snooping 影响阻断跨端口 ARP 学习完全规避

4.2 为kube-vip容器显式配置vmxnet3驱动与multiqueue参数调优

为何需显式指定vmxnet3驱动
在vSphere环境中,kube-vip容器若运行于VMware虚拟机内,默认可能使用e1000e等通用网卡驱动,无法发挥高性能网络潜力。vmxnet3支持TSO、LRO、RSS及多队列,是vSphere推荐的生产级虚拟网卡驱动。
关键启动参数配置
env:
- name: VIP_INTERFACE
  value: "eth0"
- name: VMXNET3_ENABLED
  value: "true"
- name: MULTIQUEUE_COUNT
  value: "8"
该配置强制kube-vip识别并启用vmxnet3特性,并将接收/发送队列数设为8,匹配vCPU数量以避免中断瓶颈。
multiqueue调优验证表
参数默认值推荐值生效条件
txqueuelen10005000需配合ethtool -L eth0 combined 8
rx/tx queues18vmxnet3驱动已加载且vCPU ≥ 8

4.3 在vSphere层面为VIP虚拟IP配置静态ARP条目与NS记录预注入

静态ARP注入原理
在vSphere分布式交换机(vDS)环境中,VIP流量可能因ARP缓存缺失导致首包丢弃。需通过ESXi主机shell注入静态ARP映射:
# 在每台ESXi主机执行(需root权限)
esxcli network ip neighbor add --ip=192.168.10.100 --mac=00:50:56:xx:xx:xx --interface=vdsPortGroup
该命令将VIP(192.168.10.100)与对应MAC绑定至指定端口组,绕过动态ARP请求延迟。
NS记录预注入机制
为避免DNS解析抖动,需在vCenter中预置NS记录:
  • 登录vCenter Web Client → 主机与集群 → 选择ESXi主机 → 配置 → DNS → 编辑
  • 添加静态主机条目:lb-vip.example.com → 192.168.10.100
验证与状态表
检查项命令预期输出
ARP条目esxcli network ip neighbor list | grep 192.168.10.100State=REACHABLE
DNS解析nslookup lb-vip.example.comAddress: 192.168.10.100

4.4 基于govc脚本实现kube-vip状态与vCenter VM心跳的双向校验闭环

校验逻辑设计
通过定时脚本并行采集 kube-vip 的 VIP 绑定状态与 vCenter 中对应 VM 的心跳电源状态,构建“状态比对 → 差异告警 → 自动修复”的闭环。
核心校验脚本
# 检查 kube-vip 当前主节点
KUBE_VIP_LEADER=$(kubectl get endpoints kube-vip -o jsonpath='{.subsets[0].addresses[0].targetRef.name}')

# 获取 vCenter 中同名 VM 的电源状态
VC_POWER_STATE=$(govc vm.info "$KUBE_VIP_LEADER" | grep "Power state:" | awk '{print $3}')

echo "kube-vip leader: $KUBE_VIP_LEADER, vCenter power: $VC_POWER_STATE"
该脚本利用 kubectl 提取当前 VIP 所在 Pod 名称,并通过 govc vm.info 查询其在 vCenter 中的实时电源状态,为后续一致性判断提供原子数据源。
状态映射表
kube-vip 状态vCenter 心跳状态判定结果
Running(主节点)poweredOn✅ 一致
Running(主节点)poweredOff❌ 异常:需触发故障转移

第五章:从单点故障到韧性集群——轻量K8s高可用演进方法论

轻量级 Kubernetes(如 k3s、microk8s)在边缘与CI/CD场景中广泛应用,但默认单控制平面部署存在严重单点故障风险。某IoT网关管理平台初期采用单节点 k3s,因 etcd 进程异常导致 47 分钟服务中断,暴露了架构脆弱性。
关键组件冗余策略
- 控制平面组件(apiserver、scheduler、controller-manager)需跨节点多副本部署,禁用 `--disable` 参数; - 内嵌 etcd 替换为外部高可用 etcd 集群(3节点奇数部署),并通过 `--etcd-servers https://10.0.1.10:2379,https://10.0.1.11:2379,https://10.0.1.12:2379` 显式指定; - 使用 keepalived + VIP 实现 apiserver 流量入口漂移,避免依赖外部 LB。
健康检查与自动恢复配置
# 示例:k3s server 启动参数增强
--kube-apiserver-arg=--healthz-bind-address=0.0.0.0:8080
--kubelet-arg=--node-status-update-frequency=5s
--with-kubeconfig-server=https://vip.cluster.local:6443
典型故障场景应对对比
故障类型单节点模式恢复时间韧性集群恢复时间
主控节点宕机≥12分钟(手动介入)≤28秒(VIP 自动切换 + leader 重选)
etcd 网络分区集群不可用自动降级读写,多数派节点持续服务
轻量集群升级路径
  1. 初始阶段:单节点 k3s + sqlite(开发验证)
  2. 过渡阶段:k3s 多节点 + 外部 etcd + nginx TCP 负载均衡
  3. 生产阶段:k3s HA 模式 + keepalived VIP + cert-manager 自动轮换 TLS 证书
→ [apiserver] → (VIP 192.168.10.100) → [Node1:6443 | Node2:6443 | Node3:6443] ↑↓ health check every 3s via /healthz ← etcd raft consensus across 3 nodes with automatic snapshot & WAL sync
内容概要:本文围绕列车-轨道-桥梁交互仿真研究,基于Matlab平台构建数值模型,系统分析列车运行过程中轨道与桥梁结构间的动态相互作用机制。研究涵盖多体动力学建模、耦合系统运动方程求解、边界条件设定及仿真结果可视化等关键环节,重点揭示高速行车条件下基础设施的振动传递规律与力学响应特征。该仿真方法可有效评估结构安全性、舒适性指标及疲劳寿命,为轨道交通工程的设计优化与运维管理提供理论支撑和技术路径。文中配套提供了完整的Matlab代码实现方案及操作说明,便于用户复现、验证和拓展相关研究。; 适合人群:具备Matlab编程基础和结构动力学、车辆动力学等相关专业知识的研究生、科研人员及从事铁路工程、桥梁工程与交通系统安全评估的工程技术人才,尤其适合开展轨道交通耦合振动课题的研究者。; 使用场景及目标:①用于高校与科研机构进行列车-轨道-桥梁耦合系统动力学特性的教学演示与科学研究;②支撑高速铁路桥梁的设计优化、运营安全性评估与减振降噪方案验证;③为复杂交通基础设施的多物理场耦合仿真提供建模思路与代码参考。; 阅读建议:建议读者结合所提供的Matlab代码逐模块深入研读,重点关注系统建模假设、质量-刚度-阻尼矩阵构建方法及数值积分算法的实现细节,同时可通过调整参数进行敏感性分析,进一步掌握仿真模型的适用范围与优化方向。
内容概要:本文系统研究了非线性薛定谔方程的物理信息神经网络(PINN)求解方法,提出一种将物理规律嵌入深度学习模型的科学计算新范式。通过构建全连接神经网络架构,将非线性薛定谔方程及其初始/边界条件作为损失函数的核心组成部分,实现了在无须大量标注数据的前提下对复值偏微分方程的高精度数值求解。该方法充分利用自动微分技术精确计算方程残差,有效融合了数据驱动与模型驱动的优势,在光学孤子传播、量子系统演化等典型场景中展现出优异的逼近能力与泛化性能。文中配套提供了完整的Python实现代码,涵盖网络搭建、损失定义、训练优化与结果可视化全流程。; 适合人群:具备Python编程能力与深度学习基础知识,熟悉偏微分方程理论及科学计算的理工科研究生、科研人员,以及从事光学、量子物理、流体力学等领域建模与仿真的工程技术人员。; 使用场景及目标:① 掌握PINN方法的基本原理与实现技巧;② 学习如何将复杂物理方程转化为可训练的神经网络损失项;③ 应用于非线性光学、玻色-爱因斯坦凝聚、水波动力学等问题的仿真与预测;④ 为相关科研课题提供可复现的算法原型与代码参考。; 阅读建议:建议读者结合所提供的Python代码进行动手实践,重点理解神经网络对微分算子的近似机制、损失函数的多任务加权策略以及训练过程中的超参数调优方法,进而可迁移至其他非线性偏微分方程的求解任务,拓展其在交叉学科中的应用边界。
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 微软推出的【AZ-900微软认证】是一项针对初学者的基础级云服务资格认证,其目的在于帮助学习者掌握云概念、微软Azure服务的运作机制以及云解决方案的核心知识。获得这一认证后,考生将能够清晰地理解云计算领域的基础术语、服务模式(包括IaaS、PaaS、SaaS等)以及这些服务在Azure平台上的实际应用方式。 在【必过考题】部分,我们可以观察到两个重点议题,它们分别聚焦于PaaS(平台即服务)的概念阐释和云成本的计算方式。 在第一个议题中,考生被要求辨别关于PaaS的正确性描述。PaaS平台提供了一个开发环境,但并不允许用户直接访问操作系统(Box 1: No)。比如,Azure Web Apps服务可以用来部署web应用,但用户无法直接管理虚拟机或IIS系统。另一方面,PaaS确实具备自动扩展的功能(Box 2: Yes),这表示可以根据实际需求自动增加负载均衡的虚拟机以支持web应用的运行。PaaS框架还为开发人员提供了构建和调整云端应用的工具,预置的应用组件能够有效缩短新应用的编程周期(Box 3: Yes)。 第二个议题同样关注云计算理念的理解,尤其强调IT支出从资本性支出(CapEx)向运营性支出(OpEx)的转型思想。传统的IT投资通常被视为CapEx,而云计算的按需付费机制使企业能够将这部分开支转化为OpEx,从而在财务规划上获得更大的自由度。 在为AZ-900考试做准备时,考生需要特别关注以下几个核心知识点: 1. **云服务模式**:深入理解IaaS(基础设施即服务)、PaaS和SaaS(软件即服务)之间的差异及其各自的应用情境。 2. **Azure服务*...
源码下载地址: https://pan.quark.cn/s/239a0d536a1e 依据所提供的文件资料,可以归纳出以下核心内容:由清华大学计算机系邓俊辉教授精心编纂的算法训练营题目合集,对于CSP(中国软件专业人才设计与创业大赛)及PAT(程序设计能力测试)这类编程竞赛具有极高的参考价值,堪称一份极具价值的参考资料。此类竞赛普遍对参赛者的算法功底和编程技巧提出严苛要求。该合集中的题目与算法领域紧密相连,其中包含了“最大红矩形”这一典型题目。所谓最大红矩形题目,其核心任务是针对一个由红色与绿色方格构成的棋盘,寻觅出最大的纯红矩形区域。要攻克这一问题,必须运用数据结构与算法的相关知识,特别是栈这一数据结构的应用。 “最大红矩形”问题能够被抽象转化为“直方图最大面积”问题。具体转化方法是将棋盘的每一列视为一个独立的直方图单元,其中红色方格的贡献体现为当前位置与前一个绿色方格所在行数的差值,从而保证每个直方图的基宽恒定为1。随后,借助扫描直方图的技术手段来探寻最大矩形面积。这一过程需要对每个直方图进行系统性遍历,并利用栈来记录各直方图的下标信息。一旦检测到当前直方图的高度小于栈顶元素所记录的高度,则意味着遭遇了一个“高点”,此时需计算以该“高点”为右边界条件的最大矩形面积。 在编程实践环节,必须高度关注栈的操作细节,以及如何精确地初始化和操纵栈来应对直方图问题。代码实现中,通常配置两个栈,一个用于储存直方图的高度值,另一个用于标记直方图的下标位置。当面对新高度时,需审慎判断当前高度与栈顶高度的相对关系,并据此抉择是执行入栈操作还是计算面积。针对“低点”(即当前高度小于栈顶),应直接将当前高度纳入栈中;而对于“高点”,则需执行弹出栈顶元素的操作,并基于该栈顶元素的高...
源码链接: https://pan.quark.cn/s/3af847fbbec7 在计算机科学与编程领域中,十六进制(Hexadecimal)以及二进制(Binary)是两种关键性的数值表示方法。十六进制属于一种基于16的计数系统,它运用0至9的数字以及字母A至F(分别象征10至15的数值)来呈现数值,与此同时,二进制则是一种基于2的计数系统,仅采用0和1两个符号。掌握这两种进制之间的相互转换对于深入理解计算机内部运作机制具有决定性意义,因为计算机在底层数据的存储与处理环节通常都是以二进制的形式来进行的。将十六进制转换成二进制的过程可以通过以下几个环节得以完成: 1. **单个十六进制符号的转换**:每一个十六进制符号对应着4位二进制序列。具体而言: - 十六进制中的`0`在二进制表达为`0000` - 十六进制中的`1`在二进制表达为`0001` - 十六进制中的`2`在二进制表达为`0010` - 依此类推 - 十六进制中的`9`在二进制表达为`1001` - 十六进制中的`A`或`a`在二进制表达为`1010` - 十六进制中的`B`或`b`在二进制表达为`1011` - 十六进制中的`C`或`c`在二进制表达为`1100` - 十六进制中的`D`或`d`在二进制表达为`1101` - 十六进制中的`E`或`e`在二进制表达为`1110` - 十六进制中的`F`或`f`在二进制表达为`1111` 2. **多位十六进制符号的转换**:针对一个由多个十六进制符号组成的数值,我们可以逐个符号进行转换,并将得到的二进制序列依次拼接。例如,十六进制数`3F`转换成二进制形式为`00111111`。 3. **编程实现方法**:在编程实践过程中,众多编程语言提...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值