산술 연산자는 숫자형의 산술 연산(덧셈, 뺄셈 등)을 수행하며 루아에서 지원하는 산술 연산자는 다음 표와 같다.


표 1.1 루아의 산술연산자

산술연산자

기능

+

덧셈

11+22.2, a+33, x+y

-

뺄셈(부호)

11-22.2, a-33, x-y, -1, -b

*

곱셈

11*22.2, a*33, x*y

/

나눗셈

5/3, 11/22.2, a/33, x/y

%

나머지

5%3, 22.2%11, a%2, x%y

^

거듭제곱

2^10, a^10, x^y


덧셈 연산자는 두 피연산자의 덧셈 결과를 구해 준다. 뺄셈 연산자는 이항 연산자(피연산자가 두 개)로 사용될 때는 뺄셈을, 단항 연산자(피연산자 하나)로 사용될 때에는 부호를 나타내는 연산자이다. 한 가지 주의할 것은 + 연산자는 부호를 나타내는 단항 연산자로 사용되지 못한다. 즉, +1, +x 와 같은 표현은 루아에서는 오류를 발생시킨다.

 곱셈 연산자는 두 피연산자의 곱셈결과를 구하고 나머지 연산자는 a/b의 경우 a를 b로 나눈 몫을 구한다. 나눗셈의 경우 정수끼리의 연산이라도 결과는 실수(double형)이다.

 나머지 연산자는 예를 들어 x%y 는 x를 y로 나눈 정수몫을 구하였을 때의 나머지를 구한다. 피연산자로 정수뿐만 아니라 실수도 사용될 수 있다.


print(3%2)
print(14%3)
print(2.3%2)
print(2.3%1.1)

실행 결과

1
2
0.3
0.1


거듭제곱 연산자도 있다. 예를 들어 a^b는 ab를 계산한다.


print(2^10)
print(2^0.5)
print(0.3^1.5)
print(2^-1)

실행 결과

1024.0
1.4142135623731
0.16431676725155
0.5


전술한 바와 같이 루아에서 숫자는 모두 double형 데이터이므로 모든 연산 결과도 마찬가지로 double형 실수로 구해진다.



'프로그래밍언어.Lib > 루아(Lua)' 카테고리의 다른 글

루아(Lua)의 문자열  (0) 2016.01.26
루아(Lua)의 부울형과 조건연산자  (1) 2016.01.26
루아의 산술 연산자  (0) 2016.01.25
루아(Lua)의 숫자형  (0) 2016.01.25
루아(Lua)의 식별자 만드는 규칙  (0) 2016.01.25
루아(Lua)에 대한 소개  (0) 2015.04.24
Posted by 살레시오

댓글을 달아 주세요

 산술 연산은 타 프로그래밍 언어에서도  거의 공통적으로 쓰이는 기호가 맥시마에서도 사용된다. 맥시마는 수를 표현하는 방식에서 ‘기호 형식’과 ‘수치 형식’이 있으며 (numer 라는 내부 변수에 의해서 지정됨.) 기본적으로 초기에는 기호 형식으로 동작한다. 이 두 가지 형식의 차이점을 예를 들어서 설명하면 다음과 같다. 기호모드에서는 1/11 이라는 분수를 그냥 분수의 형태로 저장하며 사실 이 수는 이 형태가 정확한 표현인 것이다. 그러나 수치모드에서는 이 숫자를 입력하면 0.090909090909091 와 같이 소수형식으로 표현되며 엄밀히 얘기하면 이 수는 1/11 의 근사값이다. 다음 [표 1]에 Maxima에서 쓰이는 산술연산기호를 정리하였다.

[표 1] 맥시마의 산술 연산자

기호

작업

비고

+

덧셈

※내부 변수 numer 의 진리값에 따라 표시 결과가 다름

-

뺄셈

*

곱셈

/

나눗셈

^

거듭 제곱



똑같은 명령어라도 수치 형식인 경우는 결과가 달라진다. 내부 변수와 변수에 값을 지정하는 방법은 뒤에서 다루어지므로 여기에서는 그냥 결과만 확인하자.



여기에서 numer:true 명령은 numer라는 내부 변수에 true라는 값을 대입하는 것이다. 맥시마는 특이하게 대입 연산자가 콜론(:)이다.


 만약 현재 모드를 바꾸지 않고 특정 수식의 실수 값을 확인하고 싶으면 float()함수를 사용하거나 표현식 뒤에 ‘, numer’라고 추가입력하면 된다.



 산술연산 기호를 이용하면 Maxima에는 대수식이나 방정식과 같은 것들도 쉽게 표현할 수 있다. 만약 x2+2x+1,1/(y2+1)이라는 대수식을 입력하려면 아래와 같이 하면 된다.



 연습 문제로 다음과 같은 식을 입력하고 확인해 보자.



Posted by 살레시오

댓글을 달아 주세요

기본적인 연산자

 다음 표에 기본적인 Scilab연산자를 정리하였다. Scilab의 기본 객체는 ‘행렬’이므로 피연산자도 일반적으로 ‘행렬’이다.


[표 1] 기본 연산자

연산자

기능

+

덧셈(이항연산자), +부호(단항연산자)

-

뺄셈(이항연산자), -부호(단항연산자)

*

곱셈

.*

요소간 곱셈

.*.

Kronercker 곱셈. kron(A,B)와 동일

/

나눗셈

\

역나눗셈 (즉 a\b 는 b를 a로 나눈다)

./

요소간 나눗셈

.\

요소간 역나눗셈

./.

Kronecker 나눗셈

.\.

Kronecker 역나눗셈

^ 또는 **

거듭 제곱

.^

요소간 거듭 제곱

‘(작은따옴표)

복소 전치 행렬

.’(점작은따옴표)

단순 전치 행렬


이 표에서 보면 요소간 연산자가 있는데 이것은 행렬 간 연산에서 같은 요소끼리의 연산을 수행한다. 예를 들어서 두 행렬 A, B에 대해서 A*B는 보통의 행렬곱으로 A의 열수와 B의 행수가 같아야 성랍하지만 A.*B 는 같은 위치의 요소끼리 곱셈을 수행하므로 A와 B의 크기가 같아서 수행된다. 예제는 행렬에 대해서 알아볼 때 들겠다.


 대입문을 작성할 때 tuple을 사용하여 한 번에 여러 변수를 지정하는 것이 가능하다. tuple 은 괄호 ( ) 를 사용하는데 각각의 요소는 반드시 comma (,)로 구분해야 한다. 이 기능을 사용하면 변수들을 서로 swap하는 데도 간결하게 사용할 수 있다.(이 기능은 python과 흡사하다.)


 아래에서 첫 번째 예가 변수 u, v 그리고 w 를 동시에 생성하는 것이다. 좌변에는 [ ... ] 를 우변에서 tuple을 지정할 때는 ( ... ) 를 사용했음에 유의해야 한다, 두 번째 예는 u와 v의 값을 서로 맞바꾸는 것이다.

내부 상수들

 다음 표에 미리 정의되어 사용되는 내부 상수들을 정리하였다. 이 변수들은 모두 %로 시작하며 사용자가 덮어 쓸 수 없다.(즉, 재정의될 수 없다.)


[표 2] Scilab의 기정의된 내부 상수들

변수명

의미

%i

허수 ()

%e

자연상수 (2.718281…)

%pi

원주율 (3.142592…)

%eps

표현가능한 가장 작은 수(약 2.2e-16)

%inf

무한대

%nan

not a number

%t or %T

(논리적) 참

%f or %F

(논리적) 거짓

%s

다항식 s=poly(0,’s’)

%z

다항식 s=poly(0,’z’)

%io

표준 I/O

Scilab의 식별자에서 ‘%’를 사용할 수 있는데 맨 첫자로만 사용가능하다. 따라서 위의 상수들은 모두 특정 값이 저장되어 있고 변경할 수 없는 변수와 같이 취급된다.



Posted by 살레시오

댓글을 달아 주세요

3장 연습 문제     [gdoc]     [smts]

  1. 연산자 ++, --가 변수에 붙는 방향에 따라 동작이 어떻게 달라지는지 기술하라.

  2. 반지름이 1.5인 원의 원주의 길이와 면적을 계산하여 출력하는 프로그램을 작성하라.

  3. 하나의 정수를 입력받아서 짝수이면 "even number!" , 홀수이면 "odd number!"라고 화면에 표시하는 프로그램을 작성하라. (조건 연산자를 이용할 것)

  4. 어떤 int형 정수를 입력받아서 그 수의 절대값을 화면에 출력해 주는 프로그램을 작성하라.

  5. 세 개의 int형 정수를 입력받아서 그 중 가장 큰 수를 화면에 출력해 주는 프로그램을 작성하라.

  6. 분수의 분자(numerator)와 분모(denominator)를 각각 입력받아(long 형) 가분수(improper fraction), 진분수(proper fraction) 여부를 출력하는 프로그램을 작성하라. 만약 가분수일 경우 정수+진분수의 형태로도 출력해야 한다.

  7. 두 개의 복소수를 입력받아서 곱셈 결과를 출력하는 프로그램을 작성하라. 단, 복소수의 실수부와 허수부는 float형으로 받는다.

  8. 2차 방정식 x2+ax+b=0 의 계수 a, b값(int형)을 키보드로 읽어들여서 판별식의 조건에 따라 두 실근일 경우 “real roots”, 중근일 경우 “an equal root”, 허근일 경우 “complex roots” 라고 화면에 표시하는 프로그램을 작성하라. 단, 중근일 경우에는  중근을 출력해야 한다.


--- 이하는 생략 가능 ---------------

  1. 변수 ucB의 b2가 0이라면 화면에 “LED off”, 1이라면 “LED on”이라고 출력하는 프로그램을 작성하라.

  2. 변수 ucC의 초기값을 0x0F이다. 이 변수값 전체가 주기적으로 반전되는 프로그램을 작성하라. (단 시간을 지연시키는 함수는 _delay_ms(unsigned shot usN )이라고 가정하고 usN에는 밀리세컨드 숫자를 입력한다고 하자.)

  3. 변수 ucA의 상위 니블을 반전시키는 코드를 작성하라.

  4. unsigned char형 변수값을 이진수로 표기해주는 프로그램을 작성하라.


Posted by 살레시오

댓글을 달아 주세요

3.12 연산자 우선 순위와 결합 방향    [doc]    [smts]

3.12.1 연산자 우선 순위

한 수식에 여러 개의 연산자를 사용하는 경우에 연산자들의 우선순위를 고려하지 않을 수 없다. 연산자 우선순위를 정리하면 다음과 같다.


  1. 괄호, 배열, 구조체, 공용체멤버를 나타내는 지시자 (), [], ->, . 은 우선순위가 가장 높다.

  2. 한 개의 피연산자를 갖는 단항연산자(!, ++, -- 등)이 그 다음으로 우선순위가 높다.

  3. 그 다음은 산술 연산자 (+, - *, /, %)이다.

  4. 쉬프트연산자와 비교연산자는 비트연산자보다 연산순위가 높다.

  5. 맨 하위에 대입연산자와 콤마(,)연산자가 있다.


[표 3.12.1] 연산자 우선 순위와 결합 방향

순위

연산자

결합 방향

1

( ) [ ] -> .

2

! ~ ++ -- - + (cast) *(pointer) &(addr) sizeof

3

* / %

4

+ -

5

<< >>

6

< <= > >=

7

== !=

8

&

9

^

10

|

11

&&

12

||

13

?:

14

= += -= *= /= %= ^= |= <<= >>=

15

,


연산자 우선 순위와 결합 방향을 고려하여 프로그래밍하는 것은 프로그래머의 몫이며 프로그래밍은 가독성(간결성)과 효율(길이) 측면에서 고민하게 되는 경우가 자주 발생한다. 한 수식에 부득이하게 연산자를 여러 개를 써야 한다면 괄호 등을 적극 활용하여 우선 순위를 명확히 하는 것이 좋다.


3.12.2 연산자 결합 방향

한 수식에서 동일한 우선순위를 가진 연산자들이 연속적으로 나타나 있으면 연산자의 결합 방향을 고려하여야 한다. 대부분의 연산자들은 왼쪽에서 오른쪽으로 결합을 한다. 하지만 반대로 오른쪽에서 왼쪽으로 결합하는 연산자가 있다.


  1. 단항연산자, 형변환연산자, sizeof등은 오른쪽에서 왼쪽으로 결합한다.

  2. 조건 연산자 (?) 는 오른쪽에서 왼쪽으로 결합한다.

  3. 대입 연산자는 오른쪽에서 왼쪽으로 결합한다.


[표 3.11.1] 연산자 결합 방향 예시

수식

결합 결과

a = x +y - z

a = (x + y) - z

a = x * y / z

a = (x * y) / z

a = x && y || z

a = (x && y) || z

a = y+= z

a = (y+= z)

a = *x++

a = *(x++)


예를 들어서 sA=sY+=sZ 와 같은 표현식은 내부적으로 정해진 결합 순서에 의해서 오른쪽에서 왼쪽으로 결합하겠지만 프로그래머가 아예


sA = (sY += sZ);

와 같이 괄호를 명시하든가 더 가독성을 높이려면


sY += sZ;
sA = sY;

와 같이 두 줄로 나누어 쓰는 것이 더 나아보일 수도 있다. 이는 전적으로 작성자의 성향에 달려있다고 할 수 있다.



Posted by 살레시오

댓글을 달아 주세요

 파이썬의 산술 연산자는 다음과 같은 것들이 있다.


[표 1] 파이썬의 산술 연산자들

연산자

기능

비고/용례

+

덧셈

11+22, a+12, a+b

-

뺄셈

11-22j - 33, a-12, a-b

*

곱셈

11*22, (33+44j)*(55-66j), a*b

/

나눗셈

결과는 실수형이다. (2.x에서는 int / int의 결과는 int)

//

자리내림 나눗셈

피연산자가 모두 정수인 경우 나눗셈의 결과 소수점 아래는 버리고 정수만 취한다.

둘 중 하나라도 실수라면 / 연산자와 동일함.

**

거듭제곱

2**10, (1+2j)**20

%

나머지

3%4, -10%3, 12.345%0.4


여기서 나눗셈의 경우 버전에 따라서 결과가 다르다. 2.x버전에서는 정수간 나눗셈의 결과는 정수였다. 즉 1/2는 0, 2/3은 1이다. 하지만 3.x버전에서는 정수간 나눗셈의 결과는 나누어 떨어지는 경우라도 무조건 실수형이 된다. 즉, 1/2는 0.2, 6/3은 2.0이 된다. 다음 결과를 확인해 보자.


>>> 4/5
>>> a,b = 11,5 #a에 11, b에 5를 대입한다.
>>> b/a


2.x버전에서는 정수끼리의 나눗셈의 결과는 정수라는 것에 유의해야 한다.


 연산자 //는 두 피연산자가 모두 정수일 경우 결과값이 실수이면 소수점 아래는 버린다.


>>> 9//2 # 결과는 4 (정수)

>>> 9//2.0 # 결과는 4.5(실수)


 연산자 %는 나눗셈 수행 후 정수몫을 구하고 난 나머지를 구하는 연산자이다. 다음을 확인해보라.


>>> 3%2
1
>>> 11.5%0.2
0.09999999999999937
>>> 11.5%0.3
0.10000000000000042


실수 연산의 경우는 결과값이 정확하지 않을 수도 있다.


 연산자 **는 거듭제곱 연산자이다. 다음 연산의 예를 보자.


>>> 2**10
1024
>>> a,c = 3,4+5j
>>> c**a
(-236+115j)
>>> a**c
(57.00434317675227-57.54567628403595j)


위에서 복소수의 거듭제곱 c**a 는  (4+5j)*(4+5j)*(4+5j) 의 결과값을 보여준다. 파이썬에서는 복소수에 대한 산술 연산도 기본적으로 지원하므로 쉽게 수행할 수 있음을 알 수 있다.


---- (이하 생략 가능) --------------------------------------------------------------------------


 그렇다면 a**c는 왜 저런 결과가 나왔을까? 다음과 같이 오일러(Euler)공식을 이용하면 된다.



이 식의 결과와 위 예제의 결과는 동일하다.



Posted by 살레시오

댓글을 달아 주세요

3.2 산술연산자와 부호연산자    [DOC]    [SMTS]

 산술 연산자는 덧셈, 뺄셈 등 산술 연산을 수행하는 연산자들이고 부호 연산자는 부호를 지정하는 것들이다. 산술 연산자는 피연산자가 두 개이므로 이항 연산자이고 부호 연산자는 피연산자가 하나이므로 단항 연산자에 해당된다.


 사칙 연산자 +, -, *, /, % 는 덧셈, 뺄셈, 곱셈, 나눗셈 그리고 나눗셈의 나머지를 구하는 연산을 수행하는 이항 연산자이다. 예를 들면 다음과 같다.


int ia = 11, ib = 22, ic, id, ie;
ic = 1a + ib;
id = ia – ib;
ie = ia * ib;
double da = 1.1, db=2.2;
da = ie*ie;
db = da/ia;

 부호 연산자는 어떤 값의 부호를 지정하거나 바꾸는데 쓰인다. 여기서 +, -기호는 부호 연산자로도 사용되며, 부호 연산자는 한 개의 피연산자를 요구하는 단항 연산자이다.  예를 들면 다음과 같다.


+1234   -1234   -temp   +a   -b

따라서 다음과 같은 표현식에서 첫 번째 ‘-’는 부호연산자이고 두번째 ‘-’는 산술연산자이다.


ia = -ib - ic;

연산의 결과를 변수에 저장할 때는 결과 값이 그 변수의 허용 범위에 들어가는지 여부를 잘 판단해야 한다.


int ia = 2000000;
int ib = ia*10;
char ca = 129; // 오류
unsigned short usa = 50000, usb;
usb = usa + 20000; // 오류 발생

 나머지(%)연산의 예를 들면 다음과 같다.


10%5 // 0
3%2 // 1
8%3 // 2
3%5 // 3

한 가지 주의할 점은 %연산자의 피연산자는 정수형만 가능하다는 점이다. 예를 들어서,


a = b % c

는 변수 a에 변수 b값을 c로 나눈 나머지를 대입하는 것인데 변수 b와 변수 c는 정수형(char, short, int, long, long long과 각각의 unsigned 형)이어야 한다는 것이다.


다음 예제는 사용자로부터 하나의 숫자를 입력받아서 2로 나눈 나머지를 출력해 주는 프로그램이다.


ex03-01.c
#include <stdio.h>
int main(int argc, char** argv)
{
  int ia;
  scanf("%d", &ia); //정수를 입력받는다.
  printf("result:%d", ia%2);
}

실행 결과

123
result:1

이 예제에서 scanf()함수는 전에 설명한 대로 사용자로부터 입력을 받는 기능을 한다.  첫 번째 인수로 “%d”로 지정하면 정수를, “%f”로 지정하면 실수를 입력받아서 그 뒤의 변수에 그 값을 저장한다. 변수명 앞에 변수의 주소를 구하는 ‘&’를 꼭 붙여야 되므로 유의하자.


다음 예제는 두 수를 입력받아서 덧셈, 뺄셈, 곱셈, 나눗셈의 결과를 표시해 주는 프로그램이다.


ex03-02.c
#include <stdio.h>
int main(int argc, char** argv)
{
  float fa, fb;
  scanf("%f %f",&fa ,&fb); //두 수를 입력받는다.
  printf("fa+fb=%f\n", fa+fb);
  printf("fa-fb=%f\n", fa-fb);
  printf("fa*fb=%f\n", fa*fb);
  printf("fa/fb=%f\n", fa/fb);
}

1e5
12.34
fa+fb=100012.340000
fa-fb=99987.660000
fa*fb=1234000.015259
fa/fb=8103.727615

키보드로 숫자들을 입력할 때 공백 문자(스페이스바 혹은 엔터키)로 두 수를 입력해야 함에 유의하자.


 변수를 사용할 때에는 항상 저장할 수 있는 범위를 고려하여야 한다. 또한 나눗셈의 경우 0으로 나누는 경우가 발생하지 않는지 검토해 보아야 한다. 다음 예제를 실행시켜 보자. (변수명을 타이핑 할 때 대소문자를 반드시 정확히 입력해야 한다.)


ex03-03.c
#include <stdio.h>
int main(void)
{
   char cA = 123, cB = 10, cC = -100, cR1, cR2;
   unsigned char ucW = 110, ucX = 100, ucY = 200;
   unsigned char ucR1, ucR2;
   short sA = 1234, sB = 100, sR1, sR2;
   cR1 = cA + cB + cC;
   cR2 = cA / cB;
   ucR1 = ucW - ucY;
   ucR2 = ucX * ucY;
   sR1 = sA/sB;
   sR2 = sA%sB;
   printf("cR1=%d, cR2=%d\n", cR1, cR2);
   printf("ucR1=%d, ucR2=%d\n", ucR1, ucR2);
   printf("sR1=%d, sR2=%d\n", sR1, sR2);
}

실행 결과

cR1=33, cR2=12
ucR1=166, ucR2=32
sR1=12, sR2=34

이 예제에서는 ucR1과 ucR2 변수의 결과값이 unsigned char형의 범위를 벗어나므로 엉뚱한 값이 표시됨을 눈여겨봐야 한다.


'프로그래밍언어.Lib > C,C++' 카테고리의 다른 글

C/C++의 논리 연산자  (0) 2015.05.19
3.4 관계 연산자  (0) 2015.05.19
3.2 산술 연산자와 부호 연산자  (0) 2015.05.19
3.3 형변환  (0) 2015.05.19
C/C++의 연산자 종류  (0) 2015.05.19
C/C++의 goto 명령  (0) 2015.05.19
Posted by 살레시오

댓글을 달아 주세요

 연산자(operator)는 주어진 데이터에 대해서 계산이나 비교 등을 수행하여 결과 값을 얻어내는 명령어를 말한다. C/C++ 에는 다양한 연산자가 마련되어 있으며 일반적으로 분류하면 다음 표와 같다.


[표 1] 연산자의 종류

구분

연산자

비고

산술 연산자

+  -  *  /  %

%는 나머지 연산자

부호 연산자

+  -

부호 표시

관계 연산자

<  >  <=  >=  ==  !=

대, 소, 등가 관계

논리 연산자

&&  ||  !

AND, OR, NOT

조건 연산자

? :

참, 거짓

증감 연산자

++  --

1증가, 1감소

대입 연산자

=

+=  -=  *=  /=  %=

&=  |=  ^=  <<=  >>=

오른쪽의 값을 왼쪽에 대입

비트 연산자

&  |  ~  ^  <<  >>

AND, OR, NOT, XOR, shift

형변환 연산자

(데이터형)

sizeof 연산자

sizeof

데이터 형의 크기

쉼표 연산자

,

구분

간접 지정 연산자

( ) [ ] -> *

함수, 배열, 구조체, 포인터


연산의 대상이 되는 수치나 변수 값을 피연산자라고 하며, 연산자는 피연산자의 개수에 따라서 이항(二項) 연산자와 단항(短項) 연산자로 나뉜다.


  • 피연산자 : 연산의 대상이 되는 수치나 변수.

  • 이항 연산자 : 피연산자가 두 개인 연산자.

  • 단항 연산자 : 피연산자가 하나인 것.


예를 들어서 덧셈(+)이나 뺄셈(-)은 피연산자가 하나이면 연산을 수행하지 못하고 반드시 두 개가 있어야 그 두 수를 더하거나 뺄 수 있으므로 이항 연산자이다. 이에 반해서 부호연산자(+. -)는 하나의 항의 부호를 규정하는 것이므로 피연산자가 하나이고 단항 연산자이다.


C++ 강좌 전체 목록 >>>


c{c++},n{c0041}

'프로그래밍언어.Lib > C,C++' 카테고리의 다른 글

3.2 산술 연산자와 부호 연산자  (0) 2015.05.19
3.3 형변환  (0) 2015.05.19
C/C++의 연산자 종류  (0) 2015.05.19
C/C++의 goto 명령  (0) 2015.05.19
C/C++의 continue 명령  (0) 2015.05.19
C/C++의 break 명령  (0) 2015.05.19
Posted by 살레시오

댓글을 달아 주세요

산술 연산자로 다음과 같은 것들이 있다.


연산자

기능

용례

+

덧셈


-

뺄셈


*

곱셈


/

나눗셈

결과는 실수형이다. (2.x에서는 int / int의 결과는 int)

//

자리내림 나눗셈

피연산자가 모두 정수인 경우 나눗셈의 결과 소수점 아래는 버리고 정수만 취한다.

둘 중 하나라도 실수라면 / 연산자와 동일함.

**

거듭제곱

2**10, (1+2j)**20

%

나머지

3%4, -10%3, 12.345%0.4


  나눗셈의 경우 ver 2.x에서는 정수형끼리의 나눗셈은 결과도 정수형이 된다. 다음 결과를 확인해 보라.


----------------------------------------------------------

>>> 4/5

>>> a, b=11,5 #a에 11, b에 5를 대입한다.

>>> b/a

----------------------------------------------------------


하지만 3.x버전에서는 나눗셈의 결과는 무조건 실수로 된다.


■ 2.x버전에서는 정수간 나눗셈의 결과는 정수였다. 즉 1/2는 0, 2/3은 1이다. 하지만 3.x버전에서는 정수간 나눗셈의 결과는 나누어 떨어지는 경우라도 무조건 실수형이 된다. 즉, 1/2는 0.2, 6/3은 2.0이 된다.


  연산자 //는 두 피연산자가 모두 정수일 경우 결과값이 실수이면 소수점 아래는 버린다.


······································································································································

>>> 9//2 # 결과는 4 (정수)

>>> 9//2.0 # 결과는 4.5(실수)

······································································································································


  연산자 %는 나눗셈 수행 후 정수몫을 구하고 난 나머지를 구하는 연산자이다. 다음을 확인해보라.


······································································································································

>>> 3%2

>>> 11.5 % 0.2

······································································································································


연산자 **는 거듭제곱 연산자이다. 다음 연산의 결과값들을 예상해 보자.


······································································································································

>>> 2**10

>>> a, c = 3, 4+5j #변수 a와 c를 차례로 초기화시킨다.

>>> c**a

······································································································································


  복소수의 거듭제곱도 (4+5j)*(4+5j)*(4+5j) 의 결과값을 보여준다. 파이썬에서는 복소수에 대한 산술 연산도 기본적으로 지원하므로 쉽게 수행할 수 있음을 알 수 있다.

#00003


Posted by 살레시오

댓글을 달아 주세요