标签: boolean-operations

C中的布尔表达式

我在C程序中找到了这个表达式,但我没有得到它:

 struct stack_rec *ss;                                          
 ss=(struct stack_rec *)EMalloc(sizeof(struct stack_rec));       
 if (ss) {                                                      
   int res;                                                     
   res = (ss->elem  = * i , 1); // what does this mean ????
   if (res <= 0)                                                
     return res;                                                
   if (*s == 0) {                                               
     ss->next = 0;                                              
   } else {                                                     
     ss->next = *s;                                             
   }                                                            
   *s = ss;                                                     
   return 2;                                                    
 }                                                              
 return 0;                                                      
Run Code Online (Sandbox Code Playgroud)

什么res = (ss->elem = * i , 1);意思?它是一个布尔表达式吗?我用0而不是1来尝试它,它总是返回第二个参数的值!请问有人能解释这个表达吗?

c boolean boolean-operations

4
推荐指数
1
解决办法
683
查看次数

为什么Java中有2个布尔类型的运算符?

正如在Java中的思维说,如果你有2个布尔对象,x并且y您可以使用x= x&&y,并x=x&y在他们身上,那么为什么它有必要,这两种类型的?

java boolean-operations

4
推荐指数
1
解决办法
343
查看次数

在IF语句中对OR和AND运算符的中断条件

If语句和任何其他布尔比较是智能的,在评估时应首先停止FALSE值,A and B and C and D并在评估时首先停止TRUE值A or B or C or D.

这种行为的名称是什么?
这是编译器优化吗?如果是这样,有一种方法可以用一些编译器指令禁用它吗?

delphi if-statement compiler-optimization boolean-operations

4
推荐指数
1
解决办法
333
查看次数

PowerShell 脚本中的布尔参数值

我想了解 PowerShell 脚本如何处理布尔参数值。

我有一个带有 4 个参数的脚本,其中 2 个是布尔变量。当我运行脚本并将这些参数之一设置为 $False 时,脚本仍然认为该变量设置为 $True。

版本 1:BooleanTest.ps1(使用 BOOLEAN 参数)

param(
    [Parameter(Mandatory=$True, Position=1)][string]$param1,
    [Parameter(Mandatory=$True, Position=2)][string]$param2,
    [Parameter(Mandatory=$True, Position=3)][bool]$param3,
    [Parameter(Mandatory=$True, Position=4)][bool]$param4
)

write-output $param1, $param2, $param3, $param4
Run Code Online (Sandbox Code Playgroud)

从命令提示符运行此脚本将返回以下内容:

>BooleanTest.ps1 -param1 "String1" -param2 "String2" -param3 $True -param4 $False
String1
String2
$True
$True
Run Code Online (Sandbox Code Playgroud)
我还尝试调整此脚本以使用开关参数:

版本 2:BooleanTest.ps1(使用 SWITCH 参数)

param(
    [Parameter(Mandatory=$True, Position=1)][string]$param1,
    [Parameter(Mandatory=$True, Position=2)][string]$param2,
    [switch]$param3,
    [switch]$param4
)

write-output $param1, $param2, $param3, $param4
Run Code Online (Sandbox Code Playgroud)

从命令提示符运行此版本将返回:

>BooleanTest.ps1 -param1 "String1" -param2 "String2" -param3:$True -param4:$False
String1
String2

IsPresent
---------
     True
    False
Run Code Online (Sandbox Code Playgroud)

根据这些试验,我有以下问题:

  • 在版本 1 中,为什么当我将第四个变量声明为 …

powershell boolean-operations

4
推荐指数
1
解决办法
1万
查看次数

使用复杂的布尔值来限制MySQL端或Java端的ResultSet是否更快?

可以说我有一个非常大的表填充了大量的数据(比如,足够不适合在内存中),我想分析行的子集.

通常做得更快:

SELECT (column1, column2, ... , columnN) FROM table WHERE (some complicated boolean clause);
Run Code Online (Sandbox Code Playgroud)

然后使用ResultSet,或者更快做到:

SELECT (column1, column2, ... , columnN) FROM table;
Run Code Online (Sandbox Code Playgroud)

然后迭代ResultSet,根据你的布尔条件的java版本接受不同的行?

我认为这取决于Java迭代器/布尔评估器是否比MySQL布尔评估器更快.

java database boolean-operations

3
推荐指数
1
解决办法
131
查看次数

3
推荐指数
1
解决办法
5万
查看次数

检查至少有十分之二的布尔是真的

如果三个布尔值中至少有两个是真的,这是最容易找到的方法:

BOOL a, b, c;
-(BOOL)checkAtLeastTwo
{
  return a && (b || c) || (b && c); 
}
Run Code Online (Sandbox Code Playgroud)

如果有10个布尔并且其中至少有两个需要是真的,那么最佳解决方案是什么?提前致谢.

language-agnostic logic boolean-logic boolean-operations

3
推荐指数
1
解决办法
594
查看次数

是否有一种不太复杂的比较文件版本的方法?

我编写了一个函数来比较客户端当前拥有的文件版本和服务器上文件的最新版本.客户端将"quad"(Major.Minor.Build.Private)版本号作为字符串传递给服务器,然后服务器使用FileVersionInfo:

// clientFileVersion will be in "quad" format, a la "3.1.4.1"
private bool ServerFileIsNewer(string clientFileVersion, FileVersionInfo serverFile)
{
    // Don't say I never learned nuthin' from Steve McConnell
    const int MAJOR_INDEX = 0;
    const int MINOR_INDEX = 1;
    const int BUILD_INDEX = 2;
    const int PRIVATE_INDEX = 3;

    string[] versionStrArray = clientFileVersion.Split('.');
    int FileMajorPartClient;
    Int32.TryParse(versionStrArray[MAJOR_INDEX], out FileMajorPartClient);
    int FileMinorPartClient;
    Int32.TryParse(versionStrArray[MINOR_INDEX], out FileMinorPartClient);
    int FileBuildPartClient;
    Int32.TryParse(versionStrArray[BUILD_INDEX], out FileBuildPartClient);
    int FilePrivatePartClient;
    Int32.TryParse(versionStrArray[PRIVATE_INDEX], out FilePrivatePartClient);

    int FileMajorPartServer = serverFile.FileMajorPart;
    int FileMinorPartServer = serverFile.FileMinorPart; …
Run Code Online (Sandbox Code Playgroud)

c# logic boolean-logic boolean boolean-operations

3
推荐指数
1
解决办法
2459
查看次数

使用TSQL进行逐位运算,如旋转,选择性位反转

如何使用TSQL进行按位操作.

我想将1位向左移位.最左边的位也应该变成极右位.

Eg1:
Declare @a tinyint = 15
--Which is equal to 0000 1111

I need the result to be 30
--Which is equal to 0001 1110

Eg2:
Declare @a tinyint = 16
--Which is equal to 0001 0000

I need the result to be 32
--Which is equal to 0010 0000
Run Code Online (Sandbox Code Playgroud)

或选择性地反转一点.例如,这里反转第3位位置

input:  0011 0010
result: 0011 1010
Run Code Online (Sandbox Code Playgroud)

为了便于理解,我以二进制显示输入,实际上输入必须是int类型.像0001 0000代表16.

t-sql sql-server boolean-operations sql-server-2012 boolean-algebra

3
推荐指数
1
解决办法
413
查看次数

如何从asp.net隐藏字段设置和获取布尔值

我有一个隐藏的领域。我需要初始设置一个布尔值的地方。经过一些操作后,我需要使用JavaScript更新隐藏的字段值。但是我们只能将字符串值存储在隐藏字段中。如何在隐藏字段中设置/获取布尔值?

任何想法如何实施?

javascript asp.net hidden-field boolean-operations

3
推荐指数
1
解决办法
2万
查看次数