当前位置:pc易上路>软件应用>Flash教程>
flash中怎样实现二进制加法?用什么函数?
来源:电脑教程网 作者:教程编辑 发布时间:2008-07-09
如题,谢谢!
没有人知道吗?还是根本没有这种函数?
郁闷,要抓狂了……
我没用过,帮你up
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
用action的 位运算啊 比如^ >> << ~ |
用这些可以?没有专门的二进制加法运算的吗?
如:如A=01100011b,B=10110100b,两者相加是00010111b,带一个进位C=1。
用上述位运算怎么实现啊?我才学flash的,狂菜,不懂要怎么弄啊-_-#
贴两个你自己研究一下,其它的可以参考手册
----------------------------------------------
|(按位 OR)
可用性
Flash Player 5。
用法
expression1 | expression2
参数
expression1、expression2 数字。
返回
无。
说明
运算符(按位);将 expression1 和 expression2 转换为 32 位无符号整数,然后对于 expression1 或 expression2 的相应位为 1 的每一位返回 1。
示例
下面是一个按位 OR 运算的示例。
// 十进制的 15 = 二进制的 1111
x = 15;
// 十进制的 9 = 二进制的 1001
y = 9;
trace(x | y);
// 1111 | 0011 = 1111
// 返回十进制的 15(= 二进制的 1111)
----------------------------------------------------------
||(逻辑 OR)
可用性
Flash Player 4。
用法
expression1 || expression2
参数
expression1、expression2 布尔值或可转换为布尔值的表达式。
返回
一个布尔值。
说明
运算符(逻辑);计算 expression1 和 expression2。如果其中任何一个或者两个表达式的计算结果为 true,则结果为 true;只有当两个表达式的计算结果都为 false 时,结果才为 false。逻辑 OR 运算符可用于任意多个操作数;只要任意一个操作数的计算结果为 true,则结果为 true。
对于非布尔表达式,逻辑 OR 运算符使得 Flash 对左侧的表达式进行计算;如果左侧的表达式可以转换为 true,则结果为 true。否则,计算右侧的表达式,而且结果就是该表达式的值。
示例
用法 1:下面的示例在 if 语句中使用 || 运算符。第二个表达式的计算结果为 true,因此最终结果为 true:
x = 10
y = 250
start = false
if(x > 25 || y > 200 || start){
trace('the logical OR test passed');
}
用法 2:此示例演示非布尔表达式是如何导致意外结果的。如果左侧的表达式转换为 true,则返回该结果,而不再转换右侧的表达式。
function fx1(){
trace ("fx1 called");
returns true;
}
function fx2(){
trace ("fx2 called");
return true;
}
if (fx1() || fx2()){
trace ("IF statement entered");
}
// 将以下内容发送到“输出”面板:
// fx1 called
// IF statement entered
终于用最最笨的方法实现了-_-#
//进位数组初始全为0
var C:Array = new Array(0,0,0,0,0,0,0,0);
/////////////////////////////////////////
//D、A是两个加数每位变量,S是结果变量
//第一位
if((D0=="1")&&(A0=="1"))
{
S0="0";
C[0]=1;
}
else if(((D0=="0")&&(A0=="1"))||((D0=="1")&&(A0=="0")))
{
S0="1";
C[0]=0;
}
else
{
S0="0";
C[0]=0;
}
//////////////////////////////////
//第二位
if((D1=="1")&&(A1=="1"))
{
if(C[0]==0){
S1="0";
C[1]=1;
}
else {
S1="1";
C[1]=1;
}
}
else if(((D1=="0")&&(A1=="1"))||((D1=="1")&&(A1=="0")))
{
if(C[0]==0) {
S1="1";
C[1]=0;
}
else {
S1="0";
C[1]=1;
}
}
else
{
if(C[0]==0) {
S1="0";
C[1]=0;
}
else {
S1="1";
C[1]=0;
}
}
//////////////////////////////////////////////
//第三位
if((D2=="1")&&(A2=="1"))
{
if(C[1]==0){
S2="0";
C[2]=1;
}
else {
S2="1";
C[2]=1;
}
}
else if(((D2=="0")&&(A2=="1"))||((D2=="1")&&(A2=="0")))
{
if(C[1]==0) {
S2="1";
C[2]=0;
}
else {
S2="0";
C[2]=1;
}
}
else
{
if(C[1]==0) {
S2="0";
C[2]=0;
上一篇:一个flash初学者的小问题 下一篇:做三维动画的前辈,有几个问题请教。
