[특수문자] 키보드 특수문자 기호, 키보드 특수문자 이름, Special characters

program/program_basic 2012. 10. 9. 10:37
반응형

Q. 키보드에 새겨져 있는 문자들의 이름을 알아보자.


프로그래밍 혹은 컴퓨터를 하면서 특수기호 들에 대한 이름을 몰라


되도 않는 콩글리시로 써본 경험은 한두번은 있을 것이다.


아무래도 의사소통은 통한다지만,


원래의 이름을 알면 더 완성도 높은 사람이 되지 않을까?!



특수문자

대표이름(영어)

이름(한글)

콩글리시

기타 혼용 이름

·

 GRAVE

(그레이브)

(grave/acute) accent, backquote, left/open quote, backprime, unapostrophe backspark, birk, blugle, backtick, push, backglitch, backping, execute, boulder, rock, blip

~ 

TILDE, WIGGLE

(틸더, 위글)

물결

twiddle, tilda, tildee, wave, squiggle, swung dash, approx, wiggle, enyay, home, worm, not

! 

EXCLAMATION POINT 

(엑스클러메이션 포인트)

느낌표 

exclamation(mark), (ex)clam, excl, wow, hey, boing, bang, shout, yell, shriek, pling, factorial, ball-bat, smash, cuss, store, potion, not, dammit

@

AT SIGN
(앳 사인)

골뱅이

at, each, vortex, whirl, whirlpool, cyclone, snail, ape(tail), cat, snable-a, trunk-a, rose, cabbage, Mercantile symbol,strudel,fetch,shopkeeper,human,commercial-at,monkey(tail)

#

CROSSHATCH
(크러스햇지)

샵 

pound, pound sign, number, number sign, sharp, octothorpe, hash, (garden) fence, crunch, mesh, hex, flash, grid, pig-pen, tictactoe, scratch (mark), (garden) gate, hak, oof, rake, sink, corridor, unequal, punch mark

$

DOLLAR SIGN
(달러 사인)

달러 

dollar, cash, currency symbol, buck, string, escape, ding, big-money, gold, Sonne 

 %

PERCENT SIGN
(퍼센트 사인)

퍼센트 

percent, mod, shift-5, double-oh-seven, grapes, food

^

CIRCUMFLEX
(
서컴플렉스)

웃음

caret, carrot, (top)hat, cap, uphat, party hat, housetop, up arrow, control, boink, chevron, hiccup, power, to-the(-power), fang, sharkfin, and, xor, wok, trap, pointer, pipe, upper-than

&

AMPERSAND
(
앰퍼샌드)

엔드 

, , and, amper, address, shift-7, andpersand, snowman, bitand, donald duck, daemon, background, pretzel

*

ASTERISK

(애스터리스크)

star, splat, spider, aster, times, wildcard, gear, dingle, (Nathan) Hale, bug, gem, twinkle, funny button, pine cone, glob

(

LEFT PARENTHESIS
(
레프트 퍼렌써시스)

(왼쪽)괄호

(open) paren, so, wane, parenthesee, open, sad, tool

)

RIGHT PARENTHESIS

(라이트 퍼렌써시스)

(오른쪽)괄호

already, wax, unparenthesee, close (paren), happy, thesis, weapon

()

PARENTHESIS
(
퍼렌써시스)

괄호 

parens, round brackets, bananas, ears, bowlegs

-

HYPHEN
(하이픈)

다시(대시)

마이너스

minus (sign), dash, dak, option, flag, negative (sign), worm, bithorpe

_

UNDERSCORE
(언더스커어
)

언더바
아랫줄 

underline, underbar, under, score, backarrow, flatworm, blank, chain, gets, dash, sneak

=

EQUAL SIGN

(이퀄 싸인)


같다
이꼬르 

equal(s), gets, becomes, quadrathorpe, half-mesh, ring

+

PLUS SIGN

(플러스 싸인)

더하기
플러스 

plus, add, cross, and, intersection, door, spellbook

BACKSLASH
(백슬래쉬)

역슬래시

reversed virgule, bash, (back)slant, backwhack, backslat, escape, backslak, bak, scan, expand, opulent throne, slosh, slope, blash

|

VERTICAL BAR
(버티컬 바)

작대기
OR 

pipe, pipe to, vertical line, broken line, bar, or, bitor, vert, v-bar, spike, to, gazinta, thru, pipesinta, tube mark, whack, gutter, wall

[

LEFT BRACKET
(레프트 브레킷)

(왼쪽)중괄호 

bracket, bra, (left) square (brack[et]), opensquare, armor

]

RIGHT BRACKET
(라이트 브레킷)

(오른쪽)중괄호 

unbracket, ket, rightsquare(brack[et]), unsquare,  close, mimic

[]

BRACKETS
(브레킷)

중괄호

square brackets, U-turns, edged parentheses

{

LEFT BRACE

(레프트 브레이스)

(왼쪽)대괄호 

brace, curly, leftit, embrace, openbrace, begin, fountain

}

RIGHT BRACE

(라이트 브레이스)

(오른쪽)대괄호 

unbrace, uncurly, rytit, bracelet ,close, end, apool

{}

BRACES

(브레이스)

대괄호

curly braces, squiggly braces, curly brackets, squiggle brackets, Tuborgs, ponds, curly chevrons, squirrly braces hitchcocks, chippendale brackets

;

SEMICOLON

(세미콜론)

세미콜론

semi, hybrid, giant eel, go-on

:

COLON
(콜론)

땡땡
콜론 

two-spot, double dot, dots, chameleon

QUOTATION MARK

(쿼테이션 마크)

쌍따옴표 

(double) quote, dirk, literal mark, rabbit ears, double ping, double glitch, amulet, web, inverted commas

APOSTROPHE

(어퍼스트로피)

어퍼스트로피

(single) quote, tick, prime, irk, pop, spark, glitch, lurker above

,

COMMA
(콤마)

콤마

쉼표

tail, trapper

.

PERIOD
(피어리어드)

마침표

dot, decimal(point),(radix)point, spot, fullstop, put, floor

<

LESS THAN

(레스 댄)

꺽쇠

less, read from, from, in, comesfrom, crunch, sucks, left chevron, open pointy (brack[et]), bra, upstairs, wes (left|open) widget

>

GREATER THAN
(모어 댄)

꺽쇠

more, write to, into/toward, out, gazinta, zap, blows, right chevron, closing pointy (brack[et]), ke downstairs, east, (right|close) widget

<>

ANGLE BRACKETS

(앤글 브레킷)

꺽쇠

angles, funnels, brokets, pointy brackets, widgets

/

SLASH

(슬래쉬)

슬래쉬
나누기

stroke, virgule, solidus, slant, diagonal, over, slat, slak, across, compress, reduce, replicate, spare, divided-by, wand forward slash, shilling

?

QUESTION MARK

(퀘스천 마크)

물음표

question, query, whatmark, what, wildchar, huh, ques, kwes, quiz, quark, hook, scroll, interrogation point

공백

SPACE
(스페이스)

띄어쓰기

스페이스

blank, ghost


참조 : http://geundi.tistory.com/111

반응형

[기초] 부동소수점의 한계, 2진 소수점 표현의 한계

program/program_basic 2012. 10. 5. 10:47
반응형

Q. 부동소수점의 표현의 한계에 대해 알아보자.



1. double 형 0.333


double dbl = 0.333;
System.out.println( dbl );



위 소스의 값은 0.333이 나온다. 그러므로 다른 사람들은 이것에 이의를 제기 하지 않았을 것이다.


하지만, 2진 변환 과정에서 위 수치 계산은 무한히 반복된다.

IEEE754 배정도 실수 유효 비트수인 52비트까지를 표현하면 아래와 같다,


0011111111010101010011111101111100111011011001000101101000011101 (2진수)


이 계산은 무한히 반복됨에도 불구하고 double 형이

표현할수 있는 비트 수의 제한이 있으므로 정확한 값의 표현이 불가능하다.

위의 숫자를 소수 60자리로 하여 10진수로 표현하면 아래와 같다.


0.333000000000000018207657603852567262947559356689453125000000 (10진수)


실제로 입력은 0.333이지만

시스템 내부에서 갖고 있는 근사치는 0.3330000000000000182.... 과 같다.


하지만 System.out.println( dbl ); 의 값은 0.333 이 나온다?


그것은 System.out.println( double ); 을 따라가 보면

sun.misc.FloatingDecimal.getChars 이 메소드가 포메팅을 수행하여

보기좋은 숫자 (내부적으로는 0.333의 가장 근사치인) 0.333 이라는 결과를 나타낸다.






2. double형 4.35 * 0.9 = 값은?


윈도우 계산기로 두드려본 결과 3.915 가 나온다.

프로그램도 같을까 ?


double a = 0.9;
double b = 4.35;

System.out.println( a * b );


위의 결과값은 3.9149999999999996 이다.

궁금하면 이클립스 실행 ㄱㄱ


이는 3.915의 가장 가까운 근사치이다.


우리 회사에서 제공하는 Round 함수는 (java JDK 6.x 기반)


Round(수식, 반올림자릿수)


Round(1/3, 3) 의 연산이 0.333 이 나와야 하는 경우가 있다.

하지만 double 형을 채택하고 있는 위 함수는 0.333을 표현할 수 없다.



그래서 !

Round_Fuzz 라는 임의값을 더하여 보정을 하고 있다.

Round_Fuzz 의 임의값을 정해야 하는데,

Round_Fuzz 값이 너무 낮으면, 

   3.9149999999999996

   0.0000000000000001 을 더하게 되면 (Round_Fuzz)

   3.9149999999999997 이 되서 아무런 변화가 없게 되고


Round_Fuzz 값이 너무 높으면, 당연히 오차 범위가 커지게 된다.


그래서 아래와 같은 소스를 돌려본 결과


double n = 10000.285;
Random rand = new Random( System.currentTimeMillis() );

for( int i = 0; i < 1000; i++ )
{
        double op1 = rand.nextDouble() * (double)( i % 10 + 1 );
        double op2 = 1.0 / op1;

        if( i % 2 == 0 )
                n = n * op1 * op2;
        else
                n = Math.pow( Math.pow( n, op1 ), op2 );
        
        System.out.println( new BigDecimal( n ) );
        
        Math.round( n );
}



통계적으로 그나마 0.00000000001 이 적합하다고 계산된다.





3. 결론


컴퓨터라고 해서 초 정밀한 결과를 내주는것은 아니며,

double 형의 제길슨한 2진 표현 방식은 너무도 어렵기 때문에,

한참을 들여다 보지 않는 이상 "나는" 알수가 없었고,


double 은 double 의 곱의 결과가 어쩌면 약간의 오차가 나올수 있다.


컴터는 어렵다 (ㅠ_ㅠ)

반응형