NSIS/Docs/src/int.but

70 lines
1.7 KiB
Text
Raw Normal View History

\S1{intinst} Integer Support
\S2{intfmt} IntFmt
\c user_var(output) format numberstring
Formats the number in "numberstring" using the format "format", and sets the output to user variable $x. Example format strings include "%08X" "%u"
\c IntFmt $0 "0x%08X" 195948557
\c IntFmt $0 "%c" 0x41
\S2{int64fmt} Int64Fmt
\c user_var(output) format numberstring
\NsisFuncReq64
\c Int64Fmt $0 "%I64x" 244837743786702
\# InternalNote: There is no IntPtrFmt instruction because "%p" is 2000+ and "%Ix" is XP+. Consequently, all code needs to check ${NSIS_PTR_SIZE}.
\S2{intop} IntOp
\c user_var(output) value1 OP [value2]
Combines value1 and (depending on OP) value2 into the specified user variable (\c{user_var}). OP is defined as one of the following:
\b \e{+} ADDs value1 and value2
\b \e{-} SUBTRACTs value2 from value1
\b \e{*} MULTIPLIEs value1 and value2
\b \e{/} DIVIDEs value1 by value2
\b \e{%} MODULUSs value1 by value2
\b \e{|} BINARY ORs value1 and value2
\b \e{&} BINARY ANDs value1 and value2
\b \e{^} BINARY XORs value1 and value2
\b \e{<<} LEFT SHIFTs value1 by value2
\b \e{>>} ARITHMETIC RIGHT SHIFTs value1 by value2
\b \e{>>>} LOGICALLY RIGHT SHIFTs value1 by value2
\b \e{~} BITWISE NEGATEs value1 (i.e. 7 becomes 4294967288)
\b \e{!} LOGICALLY NEGATEs value1 (i.e. 7 becomes 0)
\b \e{||} LOGICALLY ORs value1 and value2
\b \e{&&} LOGICALLY ANDs value1 and value2
\c IntOp $0 1 + 1
\c IntOp $0 $0 + 1
\c IntOp $0 $0 << 2
\c IntOp $0 $0 ~
\c IntOp $0 $0 & 0xF
\S2{intptrop} IntPtrOp
\c user_var(output) value1 OP [value2]
Combines value1 and (depending on OP) value2 into the specified user variable (\c{user_var}). OP is the same list of operators as supported by \c{IntOp}.
\c IntPtrOp $FieldAddress $MyBuffer + $FieldOffset