ข้ามไปที่เนื้อหาหลัก

EJB development ด้วย Glassfish Server -- Part 1 ( how to setup )

IDE : Eclipse

Application Server : Glassfish

ORM : Oracle Toplink implementaion of JPA
( ORM ตัวอื่น เช่น Entity EJB POJO, Hibernate JPA interface [ RedHat maintains it ] )

RDMBS : Derby [ build in มากับ Glassfish ]
( RDBMS ตัวอื่นเช่น HSQLDB [ Native Java RDBMS, good for testing, any RDBMS is supported ] )

other tools
log4j : loggin features for Java
hibernate-ejb3 : JPA face on Hibernate

1. ลง JDK 1.6
วิธีเลือก version ของ Java บน ubuntu

2. ลง eclipse
เขาบอกว่า ถ้าเรามี Aptana กับ C/C++ dev plugin install อยู่แล้วจะมีปัญหากับ Glassfish
ฉะนั้น ลงใหม่ซะ
วิธีลง eclipse

3. ลง glassfish

- โหลดมา
- unpack jar
$ java -Xmx256M -jar Desktop/glassfish-installer-v2.1-b60e-linux.jar

NOTE : เหมือนว่า ถ้า jar file ไม่เอาไว้ที่ Desktop มันจะเน่าเวลา start domain อ่ะ
ตามนี้ เอาไว้ที่อื่น

dsin@dsin-laptop:/media/disk/AIT/Software Architecture/glassfish$ ./bin/asadmin start-domain
Starting Domain domain1, please wait.
Default Log location is /media/disk/AIT/Software Architecture/glassfish/domains/domain1/logs/server.log.
Redirecting output to /media/disk/AIT/Software Architecture/glassfish/domains/domain1/logs/server.log
Domain domain1 failed to startup. Please check the server log for more details.
CLI156 Could not start the domain domain1.

ถึงแม้ว่าเราจะลงไว้ที่ Desktop
แต่ตอนมันลงเสร็จมันจะไปอยู่ที่ HOMEDIR/glassfish แล้วมันจัดการลบตัว install บน desktop ให้เรียบร้อยเลย เพราะฉะนั้นไม่มีปัญหานะฮะ


setup server
$ cd glassfish; ant -f setup.xml
start Apache Derby RDBMS server (ที่ติดมากับ Glassfish) ในโหมด client-server
$ ./bin/asadmin start-database
วิธี start glassfish Application Server
$ ./bin/asadmin start-domain
ลองสิ http://localhost:4848/asadmin

username : admin
password : adminadmin

วิธี stop glassfish
$ ./bin/asadmin stop-domain

- ดาวน์โหลด adapter ให้ eclipse start/stop glassfish server ได้

วิธีลง
เลือก Java EE perspective
แท็บ Server ข้างล่าง
New -> Server

Eclipse support Server มากมาย เช่น Tomcat แต่เราจะลงเพิ่ม

คลิก download additional server adapters

รอแป๊ป
มันจะขึ้น Server Adapter มาให้เลือก

เลือกดาวน์โหลด GlassFish Java EE 5 Server

วิธีใช้งาน
New -> Server

ปล เลือก v.2 นะ อยู่ลงไปอีกอันนึง ในรูปมันผิด
น่าจะใส่ประมาณนี้ล่ะมั้ง

ตอนแรก ถ้ายังไม่เลือก Application Server Directory มันจะ error ว่า หา JRE ใน /lib/appservอะไรซักอย่าง ไม่เจอ
แต่พอเลือกแล้วก็หาย


เรายังสามารถเปิด admin console ใน browser ของ eclipse โดย
คลิกขวาที่ server instance ด้วย > Glassfish Enterprise Server > View Admin Console

พอลง v.2 แล้ว จะมีแท็ป Glassfish Log Viewer เพิ่มขึ้นมา
-------------------------------------------------------------------------------------------------------------------------------
วิธี setup JDBC connection pool สำหรับ EJB app ให้ติดต่อกับ Derby

- ไปที่ http://localhost:4848/asadmin
- คลิก Create New JDBC connection pool
Use Name: localDBPool
Resource Type: javax.sql.DataSource
Database Vendor: Derby

Classname org.apache.derby.jdbc.ClientDataSource


additional properties ลบอันอื่นไปให้หมดเลยนะ
ไม่งั้นจะ ping ไม่ได้ Parameter wrong for this method : off
ให้เหลือแค่นี้พอ ( ปล. ในรูปมันผิด properties เหลือไว้แค่นี้พอ )


  • ServerName: localhost

  • PortNumber: 1527

  • User: APP

  • Password: APP

  • DatabaseName: localDB

  • ConnectionAttributes: ;create=true

  • RetrieveMessageText: true



ไอ้ตัวหนาคือ ที่จะต้องกรอกเพิ่ม นอกนั้นมันเป็นค่า default อยู่แล้วนะ

อาจเปลี่ยนก็ได้ เช่น เปลี่ยน จำนวน connection ใน connection pool



ลอง Ping เด๊ะ
ต้อง Ping สำเร็จนะ

Java พูดกับ connection pool โดยตรงไม่ได้
ต้องใช้ "Java Name and Directory Interface (JNDI)" ตั้งชื่อ component ให้ connection pool ก่อน
ไม่รู้เรื่อง JNDI อ่านนี่

associate JNDI name กับ connection pool

Resources -> JDBC -> JDBC resources
new
แล้ว add a JNDI reference to localDBPool

JNDIName : jdbc/__localDS ตามนี้

วิธี Set up Eclipse ให้ติดต่อกับ Derby connection

จะทำให้ eclipse validate entity declarations ตาม database schema ได้
( สามารถติดต่อกับ database ด้วย Eclipse และ browse schema ได้ )

create connection profile ตามนี้
- คลิกขวาที่ "Databases" ในแท็บ "Data Source Explorer" และเลือก New
- เลือก "Generic JDBC" connection (not the Embedded Derby Driver option)

- Set up connection :

Name: Local Derby Server
Derby Client JDBC Driver v. 10.2

เลือก derbyclient.jar จาก glassfish/javadb/lib/

Connection URL: jdbc:derby://localhost:1527/localDB;create=true
Database name: localDB
Driver Class: org.apache.derby.jdbc.ClientDriver
User ID: APP
Password: APP
ทีนี้ก็ดู Schema ได้แล้ว

Schema ทั้งหลายจะลงที่ APP Schema ( by default )

ref : mdailey

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

แจก คัมภีร์ ไบเบิล ภาษาไทย รวมเล่ม ( download thai bible pdf version )

แปลกใจว่า ทำไม ไม่มี ebook พระคัมภีร์ ที่สามารถ print อ่านได้เลย เลยเอา พระคัมภีร์ภาษาไทย ฉบับ KJV ( Thai Bible King James Version ) มาเย็บรวมเล่ม สร้างไว้เฉพาะ พันธสัญญาเดิม ( Old Testament ) ดาวน์โหลดได้จาก Thai Bible ย้ายแล้วจ้า ย้ายมา อันนี้ จะยัดลง iPhone หรือ iPod Touch ก็ได้ เพราะว่า มันอ่าน pdf ได้อยู่แล้ว จาก iBook ง่าย และ ฟรี ไม่ต้อง crack โปรแกรมให้ผิดศีล ถ้าไม่ชอบรูปแบบยังไง checkout มาแล้ว compile latex เองได้เลย จัดรูปแบบสวยงามแล้ว commit กลับมา จักเป็นพระคุณยิ่ง NOTE: ถ้าท่านต้องการสนับสนุนเรา ท่านสามารถดาวน์โหลด App ของเราได้ทางมือถือ Android ที่ App Words of God เนื้อหาจะเป็นเนื้อหาเดียวกันกับที่แจกฟรีนี้  ซึ่งใน App ท่านสามารถศึกษาพระคัมภีร์ได้แบบ Offline ซึ่งสามารถใช้งานได้โดยไม่ต้องต่ออินเตอร์เน็ต ท่านสามารถพกไปที่ไหนก็ได้ นอกจากนี้ ใน App ท่านสามารถ Search เพื่อค้นหาพระคัมภีร์ได้ และ ใน App เราไม่ได้เก็บข้อมูลใดๆ ของท่าน (เช่น การติดตามว่าท่านอ่านหน้าไหน, การติดตามว่าท่านค้นหาอะไร)  เดิมทีเราเองทำไว้ให้ทุกท่านสามารถเข้าถึงได้ฟรีทางเว็ปไซท์  ที่นี

อยู่เหงาๆ เลาไปเที่ยว - เที่ยวเชียงรายด้วยตัวเอง โดยไม่มีรถ เช่ารถก็ไม่ได้เช่าน้ะจ้ะ นั่งรถสาธารณะล้วนๆแจร้ ตอนแรก : วางแผนเที่ยว

เชียงราย ม่วนใจ๋ ยอมรับเลยว่า หาข้อมูลค่อนข้างยาก กระทู้รีวิว ใน pantip ที่บอกไม่มีรถไป คือ ไม่มีรถส่วนตัวไป สุดท้ายก้อไปเช่ารถขับกันหมด สุดท้ายเลาก็ไปผจญภัยมาจนได้ นี่คือตอนแรกซีรี่ส์เชียงรายของเราน้ะจ้ะ  กล่าวถึงว่า จะไปไหนบ้าง และ วิธีเดินทางในตัวเมืองเชียงราย และ ออกนอกเมืองเชียงรายไปยังที่เที่ยวยังไง 0) ตั๋ว 0 บาท จริงๆ ทริปนี้จับพัดจับผลู ดันกด ตั๋ว 0 บาท ได้ของ VietJet ซึ่งเขาเพิ่งเปิดเส้นทางใหม่ กรุงเทพฯ-เชียงราย เลยมีโปรโมชั่นนี้ออกมา จริงๆ บอกว่า 0 บาท แต่มันมีค่าภาษีสนามบิน ค่าอื่นๆ อีก รวมแล้วไปกลับ 508 บาทน้ะจ้ะ ( ภาษีสนามบิน 100 THB, PMT Fee 77 THB, Admin Fee Domestic Thai 77 THB รวมสองขา 508 บาท รวม VAT เป็น 529.56 บาท ) เวลาค่อนข้างโอเคนะ มีคนเคยบอกว่า low cost เวลาไม่ค่อยโอเค แต่เลาว่าเวลานี่โอเคเลย ขาไป 06.30 สนามบินสุวรรณภูมิ - 07.55 สนามบินแม่ฟ้าหลวงเชียงราย ขากลับ 15.15 สนามบินแม่ฟ้าหลวงเชียงราย - 16.45 สนามบินสุวรรณภูมิ ขึ้นที่สนามบินสุวรรณภูมิ (BKK) จย้ะ ไม่ใช่สนามบินดอนเมือง มีคนบอกว่าให้สังเกตรหัสถ้า BKK คือ สนามบินสุวรรณภูมิ อย่าไปผิดสนามบ

เทคนิคคิดเลขเร็วโดยใช้ วิธีคิด แบบ เวทคณิต ( Vedic Mathematics example )

จากที่สงสัยเรื่อง ลูกคิด ของ จินตคณิต ที่ลองไปค้นดู ปรากฎว่า เจอ เวทคณิต ซึ่งเขาบอกว่า อยู่ในคัมภีร์พระเวท ลองอ่านดูแล้ว รู้สึกว่าฝึกสมอง ก็ทำให้คิดเลขเร็วดี เลยสรุปมาให้ ตามนี้ Tutorial 1 การลบเลข ALL FROM 9 AND THE LAST FROM 10 ทุกตัวลบจาก 9 และตัวสุดท้ายลบจาก 10 เช่น 1000 - 357 = 643 10,000 - 1,049 = 8951 ถ้า 1,000 - 83 ให้มองว่ามี 0 อยู่ข้างหน้า เป็น 1,000 - 083 = 917 ฝึกบ่อยๆ ก็คล่อง แล้วก็ไม่ต้องใช้เครื่องคิดเลขด้วย ลองทำดูสิ 1) 1000 - 777 = 2) 1000 - 283 = 3) 1000 - 505 = 4) 10,000 - 2345 = 5) 10,000 - 9876 = 6) 10,000 - 1011 = 7) 100 - 57 = 8) 1000 - 57 = 9) 10,000 - 321 = 10) 10,000 - 38 = 3,000 - 467 ก็ทำเหมือนกัน โดยลบตัวแรกสุดของ 3,000 ไป 1 จากนั้นก็ทำเหมือนเดิม จะได้ว่า 3,000 - 467 = 2,533 Tutorial 2 VERTICALLY AND CROSSWISE สำหรับตัวเลขที่น้อยกว่าฐานนิดหน่อย ลอง 88x98 88 น้อยกว่า 100 อยู่ 12 98 น้อยกว่า 100 อยู่ 2 12x2 = 24 88-2 หรือ 98-12 ได้ 86 ดังนั้นตอบ 8,624 ดูอีกตัวอย่าง หรือ ลองทำนี่ดู 1) 87 x 98 = 2) 88 x

สอบสัมภาษณ์ MBA คำถามและการเตรียมตัว

 * “แนะนำตนเอง” การแนะนำตนเองไม่ใช่แค่บอกชื่อ-นามสกุล ตำแหน่งงาน สถานที่ทำงาน หรือ ประวัติการศึกษาเท่านั้น ข้อมูลเหล่านี้ต้องพูดถึง แต่ไม่ใช่ประเด็นสำคัญ ส่วนที่สำคัญในการแนะนำตนเองก็คือต้องขายความเป็นตัวตนของเรา ความสามารถของเรา และ/หรือวัตถุประสงค์ในการเลือกเรียนหลักสูตรนี้  พยายามตอบคำถามให้สอดคล้องกับ MBA ไม่ต้องนาน ประมาณ 2–3 นาที เน้นเนื้อ ไม่เน้นน้ำ ซ้อมพูดเยอะๆ ถือว่าเป็น First Impression * ทำไมจึงเลือกสมัครเข้าเรียนหลักสูตรนี้  ทำไมถึงมาเรียน MBA ทำไมอยากเรียน MBA ทำไม อยากเรียนตอนนี้  * ทำไม ต้องเรียน MBA ที่นี่ -- ลองศึกษา Program ของมหาลัยที่จะไปดูน้าว่ามหาลัยมีอะไรเด่น * คิดว่าถ้าเรียน MBA จะมี Challenge อะไรบ้าง * สนใจโปรแกรมอะไรบ้าง * หลังเรียนจบอยากทำอะไร * ต้องการอะไรจากหลักสูตรนี้  เรียนแล้วคิดว่าจะได้อะไร เอาไปใช้อะไรในชีวิต * ทำไมไม่เรียนสาขาอื่น ถ้าอายุงานถึงเรียนอย่างอื่นได้ * ในองค์กรที่ทำงานอยู่สามารถเติบโตได้ถึงตำแหน่งไหน * Performance ปัจจุบันเป้นยังไง  * ดูดีอยู่แล้ว แล้วมาเรียน MBA ทำไม เพราะงานที่ทำอยู่ก็มีโกาสก้าวหน้าในสายอาชีพบริหารอยู่แล้ว * ไม่ได้เรียนม

สัจพจน์ของความน่าจะเป็น ( axioms of probability )

สัจพจน์ของความน่าจะเป็น ( axioms of probability ) ให้ A เป็น เหตุการณ์สุ่ม ที่มี ปริภูมิตัวอย่าง เป็น S สัจพจน์ข้อแรก P(A) เป็นจำนวนจริงมีค่าระหว่าง 0 กับ 1 0 ≤ P(A) ≤ 1 สัจพจน์ข้อที่สอง P(S) = 1 สัจพจน์ข้อที่สาม สำหรับเหตุการณ์ A 1 , A 2 , .. , An ที่ไม่เกิดร่วมกัน หรือเขียนให้เข้าใจง่ายๆว่า หรือ P(E1 U E2 U ..) = P(E1)+P(E2)+.. ผลที่ได้จากสัจพจน์ 1. P(A c ) = 1-P(A) พิสูจน์ P(S) = 1 = P(A U A C ) = P(A)+(A C ) 2. พิสูจน์ A U B = AB U AB C U A C B P(A U B) = P(AB)+P(AB C )+P(A C B) P(A) = P(AB)+P(AB C ), P(B) = P(AB)+P(A C B) หมายเหตุ ที่เขียนติดกัน เช่น AB คือ A ∩ B น้ะจ้ะ Statical Independent ถ้า A, B, C เป็นอิสระต่อกัน ( Statical Independent ) จะได้ว่า P(ABC) = P(A)P(B)P(C) หรือขยายไปถึง A 1 , ..., A n เลยก็ได้ ซึ่งนี่ก็คือ กฎการคูณ นั่นเอง

เรื่อง matrix ที่อาจจะลืมกันไปแล้ว

Rank ของ matrix Rank ของ matrix A คือ จำนวน independent columns (หรือ rows) ของ A นั่นคือ square matrix จะ full rank ถ้า ทุกคอลัมน์ independent กัน เมื่อ full rank, det จะ = 0 วิธีหา rank อาจหาได้โดย [U, W, V] = svd(A) แล้วดูว่า rank คือ จำนวน residual ของ W ที่ไม่เป็น 0 full rank = singular matrix = หา inverse ได้ สมบัติของ rank 1. rank(AB) <= min(rank(A), rank(B)) ย้ำว่า < หรือ = นะ ดูสมบัติอื่นๆ ได้จาก wiki Null Matrix เมตริกซ์ศูนย์ (Zero Matrix หรือ Null Matrix ) คือ เมตริกซ์ที่มีสมาชิกทุกตัวเป็นศูนย์หมด Orthogonal Matrix Cramer's rule Ax = b Cramer's rule ใช้ได้เมื่อ A เป็น square matrix เท่านั้น กรณีที่มีจำนวน สมการ มากกว่าจำนวน ตัวแปร ( A mxn เมื่อ m > n ) หรือเราเรียกว่า over parameter เราไม่สามารถหา inverse ของ rectangular matrix ได้ ให้ไปใช้ psudoinverse แทน x = A + b หรือ หรือ หรือ ไปใช้ SVD แก้สมการซะ คำตอบคือ last col of v ! Gaussian elimination method ใช้แก้สมการ เช่นเดียวกับ กฏของ คราเมอร์ วิธีคิดหลักๆ คือ ทำให้สามเหลี่ยมล่างเป็น 0 ให้หมด โดย

วิธีการไป อย. กระทรวงสาธารณสุขจากหัวลำโพง

ทางไป : รถไฟฟ้า MRT หัวลำโพง ไปลงที่ สถานี กระทรวงสาธารณสุข  ถ้ากดที่ตู้ต้องเปลี่ยนไปหน้าจอสายสีม่วง สนน ราคา 48 53 บาท ต่อมอไซด์ ถ้าไป อย. 20 บาท จากหน้าทางเข้า  ถ้าฝนตกแนะนำให้โบกแท็กซี่จากข้างหน้า ข้างในหาแท็กซี่ยากมาก ถ้าจะเดินประมาณ 2.4 km ให้ระวังหลงเข้าไปรพ ศรีธัญญา รพ ศรีธัญญาพื้นที่ข้างในใหญ่มาก และเหมือนจะล้อมด้วยคลอง เหมือนจะมีทางออกแค่ทางที่เข้าไปนั่นแหละ ทางกลับ : รถเมล์ 97 จาก อย. ตรงข้ามประกันสังคม ทางที่ 1 : ถ้าจะใกล้ลงหน้าปากซอยขึ้นสายสีม่วงที่สถานีกระทรวงสาธารณสุขที่เดิม ทางที่ 2 : ผ่าน ท่าน้ำนนท์​ กลับเรือได้ ทางที่ 3 : ผ่านหน้าพระจอมพระนครเหนือด้วยนะ ผ่าน สถานีรถไฟฟ้า MRT บางซื่อ  ( จาก อย. ไป MRT บางซื่อ 17 บาท,  จาก MRT บางซื่อ ไป MRT หัวลำโพง 44 บาท นั่งกลับได้ 2 ทาง ทางหัวลำโพง กับ ไปเปลี่ยนที่ท่าพระ ไม่รู้ว่าทางไหนเร็วกว่ากัน ) ทางที่ 4 :  ผ่าน สะพานควาย  ทางที่ 5 :  นั่งถึงอนุสาวรีย์ชัยสมรภูมิได้ ค่ารถเมล์ 21 บาท ค่ารถไฟฟ้าไป BTS สะพานตากสิน 47 บาท 

ส่งไปรษณีย์ทีละมากๆ ที่ช่องไปรษณีย์สำหรับธุรกิจ

  ถ้าเราส่งไปรษณีย์ทีละ 10 กล่องขึ้นไป สามารถไปส่งโดยใช้ช่องทางธุรกิจได้ โดยต้องกรอกใบรับฝากรวม ( Receipt for bulk Posting ) เป็นลิสต์รายการให้เขาไปด้วย โดยกรอกพัสดุแต่ละรายการ และ ไปยื่นให้เขาพร้อมกับพัสดุที่จะส่ง วิธีกรอก คือ ให้กรอกพัสดุแบบเดียวกันไว้แผ่นเดียวกัน  เช่น พัสดุ10 กล่อง กล่องขนาดเท่ากัน น้ำหนักเท่ากันหมด กรอกไว้ 1 แผ่น ถ้าน้ำหนักต่างกัน ขนาดกล่องต่างกัน กรอกแยกแผ่นไว้ดีที่สุด ซึ่งใบนี้สามารถไปขอได้ที่ไปรษณีย์ฝ่ายธุรกิจ สามารถนำมาทำใส่ A4 ก็ได้ ขอบคุณคุณพี่ amarin.ch ที่ไปรษณีย์กลาง ( BANGKOK G.P.O. ) มากๆ นะครับ สำหรับคำแนะนำ ขอบคุณที่ช่วยคีย์ให้ทีละรายการสำหรับมือใหม่ที่ยังไม่รู้ว่ามีใบรับฝากรวมอย่างผมด้วยครับ คราวหน้าผมจะทำใบรับฝากรวมไปครับ

ข้อแตกต่างระหว่าง Mahalanobis distance กับ Euclidean Distance : ทำไม และ เมื่อไหร่ ต้องใช้ Mahalanobis distance ใน data mining

Euclidean Distance นิยาม EuclideanDistance = sqrt(sum( (A - B) .^ 2 )) โชว์เหนือ เขียนแบบ linear algebra EuclideanDistance = norm(A - B) ข้อเสียของ Euclidean distance 1. sensitive to scales ของตัวแปร ในกรณี geometric ตัวแปรทุกตัวมีหน่วยเดียวกันหมด คือ ระยะทาง แต่เมื่อพิจารณาตัวแปรที่มีข้อมูลหลายชนิดพร้อมๆกัน เช่น ใน data mining เราอาจจะพิจารณา อายุ, ความสูง, น้ำหนัก ฯลฯ พร้อมๆกันหมด สเกลมันเอามาเปรียบเทียบกันไม่ได้ 2. Euclidean distance ใช้กับตัวแปรที่ correlated กันไม่ได้ เช่น สมมติว่าเรามี data set 5 ตัวแปร ที่ซึ่งค่าของตัวแปรหนึ่งเหมือนกับอีกตัวแปรหนึ่งเด๊ะๆ ( กรณีนี้เหมือนเด๊ะ เลยเป็น completely correlated ) Euclidean distance จะคำนวณโดย weight ข้อมูลที่ซ้ำกันมากขึ้น ทำให้มีปัญหา Mahalanobis distance นิยาม เมื่อ S คือ covariance matrix และ x, y มี distribution เดียวกัน Mahalanobis distance มันพิจารณ่า covariance matrix ไปด้วย เลยขจัดปัญหาเรื่อง scale และ correlation ที่ Euclidean Distance มีได้ ใน MATLAB ใช้ฟังก์ชั่น mahal() หรือ pdist() ดูตัวอย่าง mahaldist.m ของคุณ Peter J. Ackl

เลขฐานสอง ติดลบ เรื่องที่อาจจะลืมกันไปแล้ว

คอมพิวเตอร์ใช้การเปิดปิด หลอดสุญญากาศ ดังนั้นค่าที่เป็นไปได้คือ 0 กับ 1 ไม่มีติดลบ จึงกำหนดให้ใช้ 2's complement มากำหนดเลขลบ วิธีทำคือ เปลี่ยนเลข 1 เป็น 0 เปลี่ยนเลข 0 เป็น 1 แล้ว บวกหนึ่ง เช่น 1 คือ 00000001 เปลี่ยนเป็น 11111110 บวก 1 ได้ 11111111 บิตที่อยู่หน้าสุดจะบอกว่าเป็นเลขบวกหรือลบ ( 0 = +, 1 = -) พิสูจน์ จาก สมการคณิตศาสตร์​ 1 + (-1) = 0 00000001 + ???????? = 0 00000001 + (11111110 + 000000001 ) = 0 นั่นเอง วิธีที่ง่ายกว่านั้นในการทำ 2's complement คือ 1. หา 1 ตัวสุดท้าย 010100 1 2. invert ตัวหน้า 1 ทั้งหมด 101011 1 สำหรับคนที่ลืมไปแล้ว 1's complement คือเปลี่ยนเลข 1 เป็น 0 เปลี่ยนเลข 0 เป็น 1 ตามปกติ เช่น ~1 1 = 00000001 ~1 = 11111110 ซึ่งมีค่าเท่ากับ -2 ที่มา : วิชาการดอทคอม , wikipedia