본문 바로가기

[IT/Programming]/HTML related

Number and Bit operations in JAVA and Javascript

반응형
# Number and Bit operations in JAVA and Javascript JAVA 에는 unsinged number type 이 따로 없는듯 하고. Javascript 에서는 data type 자체가 없음. Javascript 는 이런 data type 을 알아서 대부분 처리해주기 때문에 편한면이 많긴한데, 실제 operator (+, -, *, /, and bit operations) 들이 어떻게 구체적으로 동작하는지를 알아내기가 힘들다는 점도 있는듯. ## TOC ## string.charCodeAt(index) and String.fromCharCode(int) in Javascript JAVA 에서는 str.codePointAt(int i) and String.valueOf(int i) . ```[#pre-code-test-0.scrollable]```/
result
## Left shift : << operator ```[#pre-code-test-1.scrollable]```/
result
## Right shift : >> and >>> operator ```[#pre-code-test-2.scrollable]```/
result
## % and * operation Overflow 가 생겼을때, 어찌 처리되는지. Java 랑 Javascript 에서 다르게 처리되는지 등을 확인해야 함. ```[#pre-code-test-3.scrollable]```/
result
``` // (+int)*(+int), (-int)*(-int), (+int)*(-int) 의 연산이 다 같은 bit operation 으로 이루어지나? a+b == b+a a*b == b*a // truncation 이 있어도 성립함. -p == ~p+1 // 부호 바꾸는건 이런 operation 으로 대체 가능. '+' 에서 '-' 뿐 아니라 '-' 에서 '+' 도 같은 방식으로 가능. ~p == -p-1 // 이런 operation equality 는 truncation 이 있어서 가능한 건데... 이것 때문에 복잡해지네 ㅡ..ㅡ;;;;;; a*(b+c) == a*b+a*c ~(a+b) ==? ~a+~b = -(a+b)-1 == -a-b-1 == -a-1-b-1+1 == ~a+~b+1 ???? // 이건 분배법칙 성립 안하는듯? ~(a*b) == ~a*b == a*~b = -a*b-1 == (-a-1+1)*b-1 == ~a*b+b-1 ????? // 복잡시럽다 ㅡ..ㅡ p*q ==? ~( p*(~q+1) )+1 = -p*-q == (~p+1)*(~q+1) // 악!!!!!ㅋ 성립하겄지 뭐. ```/ ## RRA
  1. MDN - Number object in Javascript
    // Number.MAX_SAFE_INTEGER : 2^{53}-1.
  2. MDN - Bitwise Operators (Javascript)
  3. JAVA SE8 API - Class Number and Class Integer
  4. JAVA SE8 API - Class String
    int codePointAt(int index)
    static String valueOf(int i)
반응형