KMITL Computer Science Community

Please login or register.

Login with username, password and session length
Advanced search  

News:

ขอแสดงความยินดีกับ CS13 ทุกคนที่สำเร็จการศึกษา และยินดีต้อนรับน้องใหม่ของพวกเรา CS17 ด้วยครับ

Updates: แจ้งเรื่องอัพเดตเว็บบอร์ดรุ่นต่างๆ ครับ ...

Author Topic: เปลี่ยนเลขฐาน  (Read 1224 times)

0 Members and 1 Guest are viewing this topic.

benzz

  • Guest
เปลี่ยนเลขฐาน
« on: October 10, 2009, 09:49:45 PM »

ไม่ทราบว่ามีวิธีคิดยังไงเหรอครับ
ผมคิดมานานแล้วยังไม่เห็นแนวทางเลย
ขอบคุณครับ
Logged

Miracle

  • Guest
Re: เปลี่ยนเลขฐาน
« Reply #1 on: October 10, 2009, 10:05:37 PM »

คิดตรงๆ อะฮะ เหมือนทำแบบคณิตศาสตร์เลย แต่เอาคำตอบแต่ละหลัก ใส่ array เอา
 
สมมุติ แปล 10 เป็น 2
 
113
 
113 หารสอง 56 เศษ 1 ---> เข้า array[0]
56   -----  28 --- 1 ---> เข้า array[1]
 
28            บลาๆ      ---> เข้า array[n]
 
แล้วเศษที่ได้ ก็ปิ๊น array กลับหลัง n -> 0
 
ระดับค่ายแรกน่าจะประมาณนี้นะ ^^" (ยากๆ กว่านี้ให้เมพๆ ในค่ายสอนดีกว่า)
Logged

j.Teerawat

  • Guest
Re: เปลี่ยนเลขฐาน
« Reply #2 on: October 11, 2009, 12:34:09 AM »

ถูกต้องครับ วนลูปเอาเศษไปเก็บในอาร์เรย์จนกว่าผลลัพธ์จากการหารจะเป็นศูนย์ครับ ตอนวนเข้าไปก็นับไปด้วยว่าอยู่ในอินเด็กซ์เท่าไรแล้ว จากนั้นพิมพ์ค่าในอาร์เรย์ตั้งแต่เซลสุดท้ายกลับมาเซลแรกครับผม
Logged

phen1234

  • Guest
Re: เปลี่ยนเลขฐาน
« Reply #3 on: October 12, 2009, 09:16:35 PM »

ผมอยากเสนออีกวิธีนึงอ่ะคับ

คือว่าสมมุติ เราจะหาเลขฐาน 2 ของ 12 อ่ะครับ

12 -> 1100
ถ้าผมอยากรุว่า บิทที่ 4 เป็น รึป่าว ผมก็เอา 1000 ไป & ครับ
แล้วทีนี้ผมก็เช็คไปเรื่อยๆ จนครบทุก ๆบิท

เขียนเป็นอัลกอรึทึ่มได้ประมาณนี้

สมมุติเป็นเลข 4 บิท (ค่าไม่เกิน 15 )
ก็ให้ check = 8 -> 1000
รับเลขฐาน10 ลง x
for(i=0->4) 4 มาจาก 4 บิท
{printf("%d",(x&check)&&1); // เอาไป && 1 เพื่อที่ว่า หากเราเช็คบิทได้เลข 0 ก็จาปริ๊นเลข 0 แต่ถ้าเช็คแล้วเป็นเลขหนึ่ง จะปริ๊นเลข 1
check = check >> 1 }// เลื่อนบิท เช่น 1000 เลื่อนบิทไปทางขวาหนึ่งครั้งจะได้ 0100

//สามารถเอาวิธนี้ไปปรับปรุงให้ปริ๊นออกมาสวย ๆ ได้ เพราะวิธีนี้ อาจทำให้ปริ๊นออกมาเป็น 0000101
//ข้อดีคือ เราไม่จำเป็นต้องประกาศอะเรย์ให้เปลืองเม็มโมรี่
*** หากผิดพลาดประการใดก็ขออภัยครับ
Logged

benzz

  • Guest
Re: เปลี่ยนเลขฐาน
« Reply #4 on: October 12, 2009, 10:22:34 PM »

ขอบคุณมากๆครับ
Logged
 

+ Quick Reply

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Warning: this topic has not been posted in for at least 60 days.
Unless you're sure you want to reply, please consider starting a new topic.

Name: Email:
Verification:
Type the letters shown in the picture
Listen to the letters / Request another image
Type the letters shown in the picture:
ไก่อะไรนิยมกินกับข้าวเหนียวในมื้อกลางวัน: