我想知道是否有一种方法可以将布尔值转换为int而不使用if语句(以免破坏管道)。例如,我可以写
int boolToInt( boolean b ){
if ( b )
return 1
return 0
但是我想知道是否有一种方法可以不使用if语句,例如Python的
bool = True
num = 1 * ( bool )
我也觉得你可以做
boolean bool = True;
int myint = Boolean.valueOf( bool ).compareTo( false );
但是,这会创建一个额外的对象,因此它确实很浪费,而且我发现它比if语句方式还要慢(它不一定效率低下,只是有一个弱点)。
除了if外,不能使用布尔值。但是,这并不意味着在装配级别将有一个分支。
如果检查该方法的编译代码(顺便说一句,使用return b ? 1 : 0;
完全相同的指令进行编译),您将看到它不使用跳转:
0x0000000002672580: sub $0x18,%rsp
0x0000000002672587: mov %rbp,0x10(%rsp) ;*synchronization entry
0x000000000267258c: mov %edx,%eax
0x000000000267258e: add $0x10,%rsp
0x0000000002672592: pop %rbp
0x0000000002672593: test %eax,-0x2542599(%rip) # 0x0000000000130000
; {poll_return}
0x00000000025b2599: retq
注意:这是在热点服务器7上-在不同的VM上可能会得到不同的结果。
今天我得到了一个关于代码的评论,考虑到我在学校作业中检查变量是真还是假的方式。 我编写的代码如下所示: 他们说这样写更好/更整洁: 例如,0和1不应该在该变量中。
PHP是否有任何内置函数可以接受布尔值并返回其整数等效值?0代表FALSE,1代表TRUE?当然,您可以轻松创建一个函数来做到这一点,我只是询问PHP内部是否有内置函数。我已经尝试了并将其转换为但它们不起作用,它们在TRUE和FALSE两种情况下都返回0。 编辑:问题是它不是真正的布尔值,而是一个字符串“false”、“true”,php没有检测到传递布尔值的jquery帖子。问题解决了,谢谢!
我知道在 C 和 C 中,当将布尔转换为整数时, 和。我想知道向相反方向投射... 在下面的代码中,以下所有断言在使用 Visual Studio 2013 和 Keil μVision 5 编译的 .c 文件中都适用。注意 。 关于将非零、非一整数转换为布尔值,C和C标准有何规定?是否指定了此行为?请包括引文。 对于任何C编译器,我可以假设(bool)true == (int)1不是重复的吗?
我正在上一门Java课程,我们还没有正式学习if语句。我在学习,看到了这个问题:
问题内容: 在Java中将a转换boolean为an 的最常用方法是什么int? 问题答案: ^^ PS : true = 1 and false = 0
我有一个字符串,例如: