appb 08


Arithmetic (Learning the Korn Shell, 2nd Edition) B.8. Arithmetic Starting with ksh93m, the built-in arithmetic facility understands a large percentage of the C language's expressions. This makes the shell more attractive as a full-blown programming language. The following features are available: Trailing type suffixes Integer constants can have a trailing U or L suffix to indicate that they are unsigned or long, respectively. While the lowercase versions may also be used, this is not recommended, since it is easy to confuse an l (letter ell) with a 1 (digit one). C character constants C single-quoted character constants are recognized. As in C, they act like integer constants. For example: $ typeset -i c $ for ((c = 'a'; c <= 'z'; c++)) > do print $c > done 97 98 99 100 ... Octal and hexadecimal constants You can use the C format for octal (base 8) and hexadecimal (base 16) constants. Octal constants start with a leading 0, and hexadecimal constants start with a leading 0x or 0X. For example: $ print $((010 + 1)) Octal 10 is decimal 8 9 $ print $((0x10 + 1)) Hexadecimal 10 is decimal 16 17 Unsigned integer arithmetic By using typeset -ui, you can create unsigned integers. Regular integers represent both positive and negative numbers. Unsigned integers start at 0, go up to some implementation-dependent value, and then "wrap" around again to 0. Similarly, subtracting 1 from 0 wraps around the other way, yielding the largest unsigned number: $ typeset -ui u=0 $ let u-- $ print $u 4294967295 C operators and precedence ksh supports the full set of C operators, with the same precedence and associativity. The operators were presented in detail in Chapter 6 and are summarized again below. Operator Meaning Associativity ++ -- Increment and decrement, prefix and postfix Left to right + - ! ~ Unary plus and minus; logical and bitwise negation Right to left ** Exponentiation[157] Right to left * / % Multiplication, division, and remainder Left to right + - Addition and subtraction Left to right << >> Bit-shift left and right Left to right < <= > >= Comparisons Left to right == != Equal and not equal Left to right & Bitwise and Left to right ^ Bitwise exclusive-or Left to right | Bitwise or Left to right && Logical and (short circuit) Left to right || Logical or (short circuit) Left to right ?: Conditional expression Right to left = += -= *= /= %= &= ^= <<= >>= Assignment operators Right to left , Sequential evaluation Left to right [157] ksh93m and newer. The ** operator is not in the C language. B.7. Typeset OptionsB.9. Emacs Mode Commands Copyright © 2003 O'Reilly & Associates. All rights reserved.

Wyszukiwarka

Podobne podstrony:
appb
appb
appb
appb
appb
appb
appb (8)
appb
appb
appb
appb (4)
appb (10)
appb
appb
appb
appb
appb
APPB

więcej podobnych podstron