在什么情况(语言)中,-1和0所表示的布尔类型

在大部分编程环境中,true能够推出1,false能够推出0,系统会默认未定义的“1”为true,“0”为false,而其他数字,比如2、3、-1会被认为是浮点或者整数然... 在大部分编程环境中,true能够推出1,false能够推出0,系统会默认未定义的“1”为true,“0”为false,而其他数字,比如2、3、-1会被认为是浮点或者整数然而在操作Access设计查询的时候,发现输入-1时,系统会默认其为true而看IPython课程(Python 2.X)的时候,发现系统会将返回值false显示为-1,true显示为0,如图。谁能解释一下为什么? 展开
 我来答
网海1书生
科技发烧友

2018-01-22 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部
在几乎所有程序设计语言中,0等价于逻辑假(false),其他任何非零值等价于逻辑真(true)。而当把false和true反算为数字时,不同的语言有不同的结果,大致有两种:
B类语言(VB、VBS、VBScript、VBA、ASP等等):false=0,而true=-1,这是因为-1的二进制形式为:1111111111111111,0则是0000000000000000,也就是说0和-1是各位都相反的整数(或者说它们是一对“绝对相反数”),只要按位取反,就可以在true和false之间相互切换。个人认为用-1和0来表示true和false是最合理的。
C类语言(C、C++、Java、JavaScript、PHP等等现在的大多数语言):false=0,而true=1,这其实就是把一个位(1bit)设为0或1(而上面的VB则是用的16个位)。
至于你图片中说的情况,那是你误解了,-1表示“未找到”的意思,0则是"imooc"这个字符串在str1中出现的位置(即左起第1位,是按0起算的),不信你再用"mooc"去试一试,结果肯定为1,表示第2位!!!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式