diameter 发表于 2010-8-21 15:53:29

懂位运算的请进

用过C/C++的都知道位运算,可是位运算的原理是什么?
请高手告知我原理及推导
(类似图示的方法就算了 如:
         0000101100110000
or   0000000000110000
————————————
         0000101100110000

diameter 发表于 2010-8-21 16:08:14

又没人理我……

chsi 发表于 2010-8-21 16:12:35

根据我的粗浅理解,位运算就是单独操作一个字节里的某一位,没有什么原理可谈。

diameter 发表于 2010-8-21 16:14:17

我想问的是,只有四则运算,能实现位运算吗?

chsi 发表于 2010-8-21 16:17:28

逻辑运算才是最底层的操作。加减乘除都是建立在逻辑运算之上的,用加减乘除实现逻辑运算是本末倒置的。

diameter 发表于 2010-8-21 16:18:56

ls我知道,但是9750GII的PGRM的Run不支持位运算,Base又无法绘图,你让我咋办

hcz 发表于 2010-8-21 16:25:32

一位一位处理咯

diameter 发表于 2010-8-21 16:26:55

楼上的,嘛玩意?咋一位一位处理咯?我现在就是想用and来判定某一位是不是1

oracle 发表于 2010-8-21 16:39:31

就是对两个二进制操作数的每一位进行逻辑运算
如你举的例子
0000101100110000 OR
0000000000110000
----------------------------
0000101100110000
逐位进行OR逻辑运算,根据OR运算真值表便可得出结果(0表示F,1表示T,对于OR运算只要有一个为T结果就为T,两个都是F时结果才是F),就像上面例子中对齐后逐位按照0 or 0 = 0,0 or 1 = 1,1 or 1 = 1,1 or 0 =1的原则计算

这是很基本的东西,建议看一下微机原理,不过很多语言教材中会提到位运算

diameter 发表于 2010-8-21 16:42:52

问题是逻辑运算用不了!!!!

yzhang37 发表于 2010-8-21 17:33:28

。。。

BASE的程序功能受限制(连COPY及PASTE也不能用),而一般程序又无法使用BASE的功能(我试过把BASE的程序专用函数用FA-124复制到一般程序中,结果计算器狂报错)

diameter 发表于 2010-8-21 19:04:07

。。。

BASE的程序功能受限制(连COPY及PASTE也不能用),而一般程序又无法使用BASE的功能(我试过把BASE的程序专用函数用FA-124复制到一般程序中,结果计算器狂报错)
yzhang37 发表于 2010-8-21 17:33 http://www.cncalc.org/images/common/back.gif
同样的经历……

noivan 发表于 2010-8-23 11:44:12

。。。

BASE的程序功能受限制(连COPY及PASTE也不能用),而一般程序又无法使用BASE的功能(我试过把BASE的程序专用函数用FA-124复制到一般程序中,结果计算器狂报错)
yzhang37 发表于 2010-8-21 17:33 http://www.cncalc.org/images/common/back.gif居然这样
页: [1]
查看完整版本: 懂位运算的请进