Added IntOp and System::Int64Op >>> SHR operator
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@6926 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
b97de6887d
commit
99235da725
9 changed files with 25 additions and 15 deletions
|
@ -402,7 +402,7 @@ PLUGINFUNCTIONSHORT(Int64Op)
|
|||
case _T('~'): i1 = ~i1; break;
|
||||
case _T('!'): i1 = !i1; break;
|
||||
case _T('<'): if (op[1] == _T('<')) i1 = i1 << i2; else i1 = i1 < i2; break;
|
||||
case _T('>'): if (op[1] == _T('>')) i1 = i1 >> i2; else i1 = i1 > i2; break;
|
||||
case _T('>'): if (op[1] == _T('>')) i1 = op[2] == _T('>') ? (UINT64)i1 >> (UINT64)i2 : i1 >> i2; else i1 = i1 > i2; break;
|
||||
case _T('='): i1 = (i1 == i2); break;
|
||||
}
|
||||
|
||||
|
|
|
@ -595,8 +595,9 @@ good:
|
|||
<li>Multiplication -- <b>*</b></li>
|
||||
<li>Division -- <b>/</b></li>
|
||||
<li>Modulo -- <b>%</b></li>
|
||||
<li>Shift right -- <b>>></b></li>
|
||||
<li>Shift left -- <b><<</b></li>
|
||||
<li>Arithmetic shift right -- <b>>></b></li>
|
||||
<li>Logical shift right -- <b>>>></b></li>
|
||||
<li>Bitwise or -- <b>|</b></li>
|
||||
<li>Bitwise and -- <b>&</b></li>
|
||||
<li>Bitwise xor -- <b>^</b></li>
|
||||
|
@ -645,6 +646,14 @@ DetailPrint "1 << 62 = $0" # 4611686018427387904
|
|||
System::<b>Int64Op</b> 0x4000000000000000 >> 62
|
||||
Pop $0
|
||||
DetailPrint "0x4000000000000000 >> 62 = $0" # 1
|
||||
|
||||
System::<b>Int64Op</b> 0x8000000000000000 >> 1
|
||||
Pop $0
|
||||
DetailPrint "0x8000000000000000 >> 1 = $0" # -4611686018427387904 (0xC000000000000000)
|
||||
|
||||
System::<b>Int64Op</b> 0x8000000000000000 >>> 1
|
||||
Pop $0
|
||||
DetailPrint "0x8000000000000000 >>> 1 = $0" # 4611686018427387904 (0x4000000000000000)
|
||||
</pre></blockquote>
|
||||
<blockquote><pre>
|
||||
System::<b>Int64Op</b> 0xF0F0F0F | 0xF0F0FFF
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue