pascal逻辑运算符与位运算符

各位好最近看到一段pascal算法里面用了and和or运算符因为我对pascal不熟所以把这段算法改写成了c调试,也就是把and和or改写成了&&和||,刚刚我才发现我弄... 各位好
最近看到一段pascal算法 里面用了and 和 or 运算符 因为我对pascal不熟 所以把这段算法改写成了c调试,也就是把and 和 or改写成了 && 和 || ,刚刚我才发现我弄错了 其实算法的本意是使用位操作符而不是逻辑操作符
我查了一下 pascal里面逻辑操作符与位操作符是一样的 我想知道编译器是怎么判断什么时候使用位操作符而什么时候使用逻辑操作符呢
比如说 在pascal中 255 or 1 可以解释成 c中的 255 & 1 这样结果就是 255
同样也可以解释成c中的 255 && 1 这样的结果便是 1
谁能帮我解释一下pascal是怎么判断or是当成逻辑运算符来处理还是当作位运算符来处理呢?
1L
表达式计算完成之后也是数字
数字也是以变量形式来表示的 也可以说成是表达式吧
希望能把具体的依据发出来
展开
 我来答
xttts
2009-04-23 · TA获得超过2754个赞
知道小有建树答主
回答量:1295
采纳率:0%
帮助的人:1589万
展开全部
Pascal中不同类型的相互赋值是不允许的。
例如
声明了
var i:integer; c:char;
(相当于:int i; char c;)
如果有语句
i:=c; (相当于i=c)
则会报错,必须写成
i:=ord(c); 或者 i:=integer(c);
进行数据类型的转换。

所以如果有语句:
if i=c then ...
(相当于 if (i=c) ...)
那么程序同样会报错!

你所说的情况,Pascal会自动判断两边是否为Boolean类型(bool类型),
如果不是则进行按位运算,如果是则执行布尔运算。

例如:
var i,j,n:byte;
(unsinged short int i,j,n;)

n:=i and j;
表示按位运算

var i,j,n:boolean;
(bool i,j,n;)

n:=i and j;
表示逻辑运算。
(虽然可以有i=2 j=1但是它们的逻辑与仍然为真,值为1)
--
2022-12-05 广告
图形化编程简单理解为用积木块形式编程,scratch和python也是其中的一种,属于入门级编程,以其简单生动的画面获得无数学生的喜爱,深圳市创客火科技有限公司是一家做教育无人机的公司,旗下有编程无人机,积木无人机及室内外编队,每款飞机含有... 点击进入详情页
本回答由--提供
xjx8599
2009-04-23 · TA获得超过519个赞
知道小有建树答主
回答量:232
采纳率:0%
帮助的人:214万
展开全部
pascal里or两边如果是表达式,那么or就作逻辑操作符,如果是数字就是位操作符了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式