1. 首页 > 软件园

怎么计算大数减法 大数相减的方法

作者:admin 更新时间:2024-06-27
摘要:在之前,我们已经讨论了如何进行大数加法的计算。现在,我们将要讨论如何进行大数减法的计算。虽然思路和大数加法类似,但是还是有一些微妙的不同之处。将数值转为字符串在Flash程序中,我们可以通过在文本框中,怎么计算大数减法 大数相减的方法

 

大家好,本网站为大家提供优质的、全新的游戏攻略,援助大家更愉悦地、更顺手地玩游戏,走过路过不要错过奥。

在之前,我们已经谈论了如何进行大数加法的计算。此刻,我们将要谈论如何进行大数减法的计算。虽然思路和大数加法类似,但是如故有一些微妙的不同之处。

将数值转为字符串

在Flash程序中,我们可以通过在文本框中输入来得到大数。这时,大数已经被转换成了字符串。需要注意的是,字符串末尾可能会多出一个不行见的空字符,所以在求长度时需要减去1。以下是将大数A和B转换为字符串的示例代码:

```as3

var A:String Text1.text;

var B:String Text2.text;

var j:int A.length - 1;

var k:int B.length - 1;

var len:int j > k ? j : k; //取得最长数位个数

```

处理结果为负数

起首,我们需要裁定数位,保证被减数A大于减数B。若果A的数位少于B,则交换两个数及数位个数。同时,我们需要将结果标记为负数。以下是处理结果为负数的示例代码:

```as3

if (j < k) {

var s:String A;

A B;

B s;

j k;

k j;

sign "-";

} else if (Number(A) < Number(B)) {

s A;

A B;

B s;

s j;

j k;

k s;

sign "-";

}

```

补充数位使两数数位相同

若果两个数的数位不同,我们需要用0在较小的数的最高位前面添加数位,使两个数的数位相同。以下是补充数位的示例代码:

```as3

while (k < j) {

B "0" B;

k ;

}

```

分割字符到数组

与其他语言如VB、C不同的是,大数的最高位在数组的首位。以下是将大数A和B分割为数组X和Y的示例代码:

```as3

var X:Array [];

var Y:Array [];

for (var i:int len; i > 0; i--) {

X[i-1] (i-1); //字符在字符串中最大索引值比个数少1

Y[i-1] (i-1);

}

```

模拟数组对应元素相减

接下来,我们需要模拟数组对应元素相减,并思量可能的退位状况。以下是模拟数组对应元素相减的示例代码:

```as3

var R:Array [];

for (i len; i > 0; i--) {

if (Number(X[i-1]) < Number(Y[i-1])) {

//不够减

if (R[i-2] undefined) {

R[i-2] 0;

}

R[i-2] - 1; //从上位借1

R[i-1] Number(X[i-1]) 10 - Number(Y[i-1]); //借1当10

} else {

R[i-1] Number(X[i-1]) - Number(Y[i-1]); //够减直接减

}

}

```

去掉最高位的0

最后,我们需要去掉结果中最高位的0。以下是去掉最高位的0的示例代码:

```as3

var s:Boolean true; //去掉最高位的0

while (s) {

if (R[0] 0) {

//若果最高位有0

();

} else {

s false; //没有0,退出循环

}

}

```

处理结果为负数的状况

若果结果为负数,我们需要在结果前面添加一个负号。以下是处理结果为负数的示例代码:

```as3

if (sign "-") {

R.unshift("-");

}

```

输出结果

最后,我们可以将结果输出到控制台或者文本框中。以下是将结果输出到控制台的示例代码:

```as3

trace((";"));

```

你也可以将结果输出到文本框中,例如:

```as3

Text3.text (";");

```

这是一个依据实践总结的阅历,肯定原创的方法。期望对你有所援助!

作者:张志晨

日期:2012.5.16

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将即刻删除。

大家注意,牢记持续关注本游戏攻略网站,您的支持是我们最大的动力奥,我们会努力提供全网新的游戏攻略教程,加油。

本创作内容,未授权勿转载,必究权责。

免责说明:本文代表的是网站编辑的观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经确认,因此对本文以及其中全部或者部份内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。