汇编的进位与溢出

有符号数与无符号数之间运算问题探究 文章目录有符号数与无符号数之间运算问题例子:问题探究:unsigned int变量跟int类型的变量运算时得出的结果是什么类型的?逐步思考:代码分析:问题总结例:1:例2: 无符号和有符号两个数比较时,会默认转成无符号数,再进行比较。 有符号数与无符号数之间运算问题 这个问题测试是否懂得C语言中的整数自动转换原则,有些开发者懂得极少这些东西。当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此,从这个意义上讲,无符号数的运算优先级要高于有符号数,这一点对于应当频繁用到无符号数据类型 阅读详情
对于无符号数来说,不存在溢出的问题,它的进位就相当于有符号数中的溢出
而对有符号数来说,不存在进位的问题

一个字节(8位) 的数有256个 (2的8次方)
一个字(16位) 的数有65536个 (2的16次方)


8个二进制位能够表达的无符号数范围是:0 ~ 255 
16位表达的无符号数范围是:0 ~ 65535 

对于无符号数来说,不存在溢出的问题,它的进位就相当于有符号数中的溢出.
进位表示最高位有没有向上形成进位,或向个形成借位,如果有则进位标志CF为进/借位数,但结果没错。
进/借位数要看 十六进制、二进制,进/借的是十六进制、二进制的最高位

处理器内部以补码表示有符号数,
8个二进制位能够表达的有符号数范围是:+127 ~ -128
16位表达的有符号数范围是:+32767 ~ -32768

如果运算结果超出了这个范围,就是产生了溢出,有溢出,说明有符号数的运算结果不正确
溢出是指结束超出数据所表示的范围,通俗地说是装不下了,比如,两个带符号的字节数127和2相加,结果为-1,因为带符号的字节数最大正数为127,所以超过范围,溢出标志位OF为1,说明出错了。
对于有符号数来说,不存在进位的问题

例如:
3AH + 7CH=B6H,就是58 + 124=182,已经超出-128 ~ 127范围,产生溢出,所以OF=1;另一方面,补码B6H表达真值是-74,显然运算结果也不正确。

溢出标志OF和进位标志CF是两个意义不同的标志.进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确;溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确。

请看例子
例1:3AH + 7CH=B6H
无符号数运算:58+124=182,范围内,无进位
有符号数运算: 58+124=182 ,范围外,有溢出
例2:AAH + 7CH=(1)26H
无符号数运算:170+124=294,范围外,有进位
有符号数运算:-86+124=28 ,范围内,无溢出

处理器对两个操作数进行运算时,按照无符号数求得结果,并相应设置进位标志CF;同时,根据是否超出有符号数的范围设置溢出标志OF。

应该利用哪个标志,则由程序员来决定。也就是说,如果将参加运算的操作数认为是无符号数,就应该关心进位;认为是有符号数,则要注意是否溢出。

判断运算结果是否溢出有一个简单的规则:只有当两个相同符号数相加,而运算结果的符号与原数据符号相反时,产生溢出,此时的运算结果显然不正确。其他情况下,则不会产生溢出。

两个正数相加(或一个正数减一个负数)得到负数,或是两个负数相加得到正数,就是溢出了.
一个正数和一个负数相加不可能溢出
汇编新手避坑指南:写‘两位数加法’时,你可能会遇到的溢出和进位问题 本文详细解析了在DOS环境下使用汇编语言编写两位数加法程序时常见的溢出和进位问题。通过实例代码和工业级解决方案,帮助汇编新手避免寄存器溢出、ASCII转换错误和进位处理不当等典型陷阱,提升编程实践能力。 阅读详情

相关推荐

循环卷积和线性卷积(矩阵视角)

矩阵视角的循环卷积核线性卷积

shengsong 3577

溢出和进位

溢出与进位 对于无符号数来说,不存在溢出的问题,它的进位就相当于有符号数中的溢出 而对有符号数来说,不存在进位的问题 一个字节(8位) 的数有256个 (2的8次方) 一个字(16位) 的数有65536个 (2的16次方) 8个二进制位能够表达的无符号数范围是:0 ~ 255 16位表达的无符号数范围是:0 ~ 65535 对于无符号数来说,不存在溢出的问题,它的进位就相当于有

阿彪 3万+

多核异构处理器核间通信:从共享内存到RPMsg协议的实战解析

在多核异构处理器架构中,核间通信是实现高效协同计算的核心技术。其基本原理是通过共享内存作为数据交换的物理媒介,配合硬件信号机制实现同步与通知。从技术价值看,它解决了不同架构核心间的数据共享与指令协同问题,是释放异构计算潜力的关键。在应用场景上,该技术广泛应用于智能物联网设备、汽车电子和工业控制等领域,用于连接高性能应用处理器与实时微控制器。本文以典型的ARM Cortex-A与Cortex-M组合为例,深入剖析了基于共享内存和RPMsg协议的通信机制,涵盖了从硬件基础到软件协议栈的完整实现链路,并提供了针对

weixin_26969269的博客 447

补码的秘密之三--溢出和进位

上述的 “双符号位” 法,只适合于人工计算,目前还没有听说那个 CPU 具有 “双符号位”。1. 只有 “正+正、负+负” 或 “正-负、负-正”,才有可能溢出,其它的绝不会溢出。2. 用机器码代表的十进制数,计算一下,如果运算结果超出预定范围,就是溢出了。4. 采用 “双符号位” 法进行计算,如果两个符号位不同,就是发生了溢出。硬件知识是很难懂的,所以,任何参考书上,都没有给出这种方法的理论依据。但是,无论它们是无符号数还是带符号数,加减运算的过程,都是相同的。常识,都被他们弄的混乱不堪。

做而论道的博客 4202

OAI数据集申请与实战:从权限获取到医学影像分析应用

本文详细介绍了OAI数据集的申请流程与医学影像分析实战应用。从NDA账户注册、数据下载技巧到骨盆X光关键点检测的完整实现,帮助医学研究者高效利用这一权威骨关节炎数据集。特别分享使用Pei Y标注数据训练U-Net模型的经验,包括预处理、注意力机制优化等实用技巧。

weixin_30275415的博客 478

YOLOv8 改进:使用 MobileNetV3 轻量化架构改进特征提取网络

通过使用 MobileNetV3 作为 YOLOv8 的特征提取器,能够显著降低模型复杂度和运行时资源消耗,同时在一定程度上保持检测精度。这种方法特别适合需要高效计算的边缘设备和嵌入式系统。

走向CTO的路上... 1275

溢出(Overflow)和进位(Carry)的区别。

进位(Carry):进位通常发生在无符号数的运算中。当无符号操作中产生了超过表示范围的结果时,会发生进位。例如,在无符号的加法中,如果操作结果超出了数据类型所能表示的最大值,就会发生进位。进位标志位在无符号数的运算和一些位级操作(如位逻辑运算)中也有其他用途。溢出(Overflow):溢出发生在有符号数的运算中。当有符号操作结果超出了有符号数的表示范围时,即结果无法用有限位数表示时,会发生溢出。例如,在有符号的加法或减法中,如果操作结果超出了数据类型所能表示的范围,就会发生溢出。

qq_53962537的博客 7838

Windows远程桌面开发之九-虚拟显示器(Windows 10 Indirect Display 虚拟显示器驱动开发)

by fanxiushu 2019-06-24 转载或引用请注明原始作者。 这里与远程桌面关系不是太大,但这个部分是xdisp_virt远程控制程序的实现多显示器桌面扩展的子功能,因此也归为远程桌面开发一类。 这篇文章与之前发布的...

fanxiushu的专栏 2万+

溢出和进位的区别

进位:是对无符号数而言。 溢出: 是对有符号数而言, 有符号数溢出的规律:               正 + 负 = 永远不会溢出 。               正 + 正  = 正  (OK)               正 + 正  = 负  (溢出)               负 + 负  = 负   (OK)               负 + 负  = 正   (

LDWJ2016的博客 7216

目标检测: yolo26在RK3588上部署

YOLO26发布:端到端目标检测新突破 摘要:Ultralytics最新发布的YOLO26算法采用原生端到端设计,无需NMS后处理,显著提升推理效率。该模型基于三大核心原则: 简洁性:消除NMS步骤,实现直接预测 部署效率:简化集成流程,降低延迟 训练创新:引入MuSGD混合优化器,加速收敛 部署教程显示,YOLO26可适配RK3588等边缘设备,通过ONNX转换和RKNN工具链实现高效部署。其创新架构特别优化了分割、姿态估计等专业任务,标志着目标检测技术的重要革新。 (字数:149)

qianxun 1442

【软件系统架构】系列十一:面向对象技术—sysML

摘要: SysML(系统建模语言)是UML的扩展,专为复杂系统工程设计,支持硬件、软件、人员等跨领域建模。其核心包括9种图:4种结构图(如块定义图BDD、内部块图IBD)、4种行为图(如活动图AD、序列图SD)和需求图(REQ),覆盖需求、结构、行为及参数约束。相比UML(面向软件),SysML精简图表(9 vs 13),强化需求追踪与性能分析(如参数图PD),并支持MBSE(基于模型的系统工程)。需求关系(如满足、验证、派生)在需求图中明确关联设计实现,形成闭环管理。SysML是UML的子集与系统工程扩展

moton2017的博客 1904

我对汇编中进位和溢出的理解

关于进位和溢出,我一直分不清楚,直到最近重新学习汇编语言,我对这两个概念产生了新的理解。 下面是代码,我把说明放在代码注释中了。 ;//数据传输示例 .386 .model flat, stdcall .stack 4096 ExitProcess PROTO, dwExitCode:DWORD .data .code main PROC ;// 前提:CPU不知道一个数是“有符号”还是“无...

hambaga的博客 1628

全景相机APP

以下是一款**全景相机APP**的完整源码,支持全景照片拍摄(多帧拼接)、全景预览、鱼眼矫正、图片保存/分享、360°全景查看等核心功能,基于Android原生Camera2 API(替代过时的Camera API) + OpenCV(图像拼接) + GLSurfaceView(全景预览)实现,适配Android 8.0+设备,可直接编译运行。runOnUiThread(() -> tvFrameCount.setText("已拍摄:" + frameCount + "帧"));// X轴旋转(上下)

寒寒豆豆软件公司的博客 179

汇编语言中溢出和进位的区别

of的设置,以加法为例,如果两数符号相同,结果却相反,则of=1;否则of=0;(如果两数符号相反,是不会溢出的)。cf的设置,最高有效位(bit7,比如)向高位进位则为1,否则为0。所以实际上of是表示有符号数的溢出,cf是表示无符号数的溢出。理解进位,从af位的设置更为容易。其他回答A的补码与B的补码计算后( 加减)为C的补码把C的补码看成无符号数,意义与C相同就是CF=0否则CF=...

weixin_30685029的博客 996

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

汇编语言:进位标志与溢出标志

对于非符号数来说,不存在溢出的问题,它的进位就相当于符号数中的溢出. 而对于符号数来说,不存在进位的问题.两个正数相加(或一个正数减一个负数)得到负数,或是两个负数相加得到正数,就是溢出了.一个正数和一个负数相加不可能溢出

brk1985的专栏 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

汇编中的进位和溢出

首先 明白一下几点: 溢出标志OF和进位标志CF是两个意义不同的标志. 对于无符号数来说,不存在溢出的问题,它的进位就相当于有符号数中的溢出 而对有符号数来说,不存在进位的问题 溢出是指结果超出数据所表示的范围,溢出标志位OF为1,说明有符号数的运算结果不正确 问谁知道是有符号的还是无符号的运算额? 答: 处理器对两个操作数进行运算时 按照无符号数求得结果,并相应设置进位标

Greedy world 2557

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

汇编中的有符号-无符号-溢出-进位

什么是有符号数?什么是无符号数?什么是溢出(OF)?什么是进位(CF)?如何区分有无符号 呢?有符号数,就是带符号的数,可以是正数或负数。区分正数或负数时,看这个数的最高位是 否为 1,最高位为 1,说明它是负数。最高为 0 说明它是正数。例如一个字节有符号数,表示范围(-128 ~ 127):A0 :1010 0000 : -96 最高位为 1,说明是负数 80 :1000 0000 :-128...

weixin_33755847的博客 3217

【汇编语言】DOSBox的进位和溢出区别

dosbox中debug的标志位 次高位进位,最高位没进位,溢出。没进位 次高位没进位,最高位进位,溢出且进位 次高位进位,最高位进位,没溢出但是进位了。 总结: 判断是否进位时,将两个数都当作无符号数,判断是否进位 判断是否溢出时,将两个数都当作有符号数,判断结果是否超出范围。 ...

清风微醺的博客 1239

(最详细!)汇编原理中OF(溢出)和CF(进位)的判断方法

关于这个问题百度查了半天,都没有比较全面的解释,所以我来了! 首先我们需要知道,al是用两位16进制的数来保存数据的, 所以正数最多保存0~255(十进制),FFH 处理器内部以补码表示有符号数,8个二进制位能够表达的整数范围是:+127 ~ -128 那么补码怎么求呢? 如下: 正数的补码就是其本身 负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1) [+1] = [00000001]原 = [00000001]反 = [0000

Salmon1122的博客 2万+

汇编学习手札之溢出进位

首先 明白一下几点: 溢出标志OF和进位标志CF是两个意义不同的标志. 对于无符号数来说,不存在溢出的问题,它的进位就相当于有符号数中的溢出 而对有符号数来说,不存在进位的问题 溢出是指结果超出数据所表示的范围,溢出标志位OF为1,说明有符号数的运算结果不正确 问谁知道是有符号的还是无符号的运算额? 答: 处理器对两个操作数进行运算时 按照无符号数求得结果...

weixin_30596023的博客 135

闲谈汇编中的进位 和 溢出

首先 明白一下几点:溢出标志OF和进位标志CF是两个意义不同的标志.对于无符号数来说,不存在溢出的问题,它的进位就相当于有符号数中的溢出而对有符号数来说,不存在进位的问题溢出是指结果超出数据所表示的范围,溢出标志位OF为1,说明有符号数的运算结果不正确问谁知道是有符号的还是无符号的运算额?答:处理器对两个操作数进行运算时按照无符号数求得结果,并相应设置进位标志CF;同时,...

weixin_34026484的博客 603

【汇编语言】进位标志和溢出标志

有符号数不存在进位,超出范围就是溢出 无符号数不存在溢出,超出范围就是进位 也就是说运算完一个式子之后,进位标志和溢出标志有可能同时为1 运算式按无符号数算,进位标志可能为1 运算式按有符号数算,溢出标志可能为1 这两种情况理论上是可以同时出现的,那么只有编程的人自己知道自己用的数是有符号还是无符号,然后去看相应的标志位。 即如吾师所言

Xianggeyyds的博客 1287
上一篇: 【16位汇编】neg+sbb算术运算代替逻辑跳转
下一篇: 有符号数与无符号数相乘
cmdhack
博客等级 码龄19年 20粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值