在什么情况(语言)中,-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,如图。谁能解释一下为什么?
展开
展开全部
在几乎所有程序设计语言中,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位!!!
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位!!!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询