วันจันทร์ที่ 9 มีนาคม พ.ศ. 2558

โปรแกรมแปลงเลขฐาน 16 เป็นเลขฐาน 10

1. วิธีการแปลงฐาน 16 เป็นฐาน 10 โดยปกติ
          การแปลงเลขฐาน16 ให้เป็นเลขฐาน 10 ทำได้โดยวิธีการคูณตัวเลขฐาน 16 ในแต่ละหลักด้วยค่าประจำตำแหน่ง แล้วนำผลลัพธ์ที่ได้มารวมกัน จะได้เป็นค่าของเลขฐานสิบ

2. CODE program ( เขียนแบบ OOP สร้าง Class)

#include "stdio.h"
#include "string.h"
class Number_Base
{
int number;
int ch;
char sh[100];
 int i,j;
public:
                Number_Base(){
                                number=0;
                                i=0,j=0;
                }
                void convert_Number(){
                                printf("\t\t\t\tinput Number in Hex: ");   
                                scanf("%s",&sh);
                                i =strlen(sh);
                while(i!=0){
                                ch = sh[j];
                                printf("\n\n\t\t\t\t-----Char no.%d-----\n",j+1);

                                                if(('0' <= ch && ch <= '9')){
                                                                printf("\t\t\t\tCh:%d\t\t%d\n",ch,ch-'0');
                                                                number = number * 16;
                                                                printf("\t\t\t\tNumber :%d\n",number);
                                                                number = number + (ch - '0');
                                                }
                                                if(('A' <= ch && ch && ch <= 'F')){
                                                                printf("\t\t\t\tCh:%d\t\t%d\n",ch,ch-'7');
                                                                number = number * 16;
                                                                printf("\t\t\t\tNumber :%d\n",number);
                                                                number = number + (ch - '7');
                                                }
        printf("\t\t\t\tNumber :%d\n",number);
        printf("\t\t\t\t-------------------");
        i--;
        j++;
                }
     printf("\n\n\t\t\t -----------Output--------------");
     printf("\n\t\t\t The O/p No in Decimal is : %d\n",number);
     printf("\t\t\t -------------------------------");
                }
};
void main()
{
                Number_Base b1;
                b1.convert_Number();
}

3. อธิบาย Code program
#include "stdio.h"                                             เรียกใช้ไลบรารี stdio.h
#include "string.h"                                             เรียกใช้ไลบรารี string.h
class Number_Base                                           สร้างคลาสชื่อ Number_Base
{
int number;                                                    ประกาศตัวแปรชื่อ number ชนิด integer
int ch;                                                           ประกาศตัวแปรชื่อ ch ชนิด integer
char sh[100];                                                   ประกาศตัวแปรชื่อshแบบสตริงชนิด character
 int i,j;                                                            ประกาศตัวแปรชื่อ iและ j ชนิด integer
public:                                                           ประกาศให้ code ที่อยู่ใต้คำสั่งนี้ เป็นแบบ  
                                                                     สาธารณะ
Number_Base()                                                สร้างฟังก์ชั่น ชื่อว่า Number_Base เป็น    
                                                                    constructor
{
number=0;                                                     ให้ตัวแปร number มีค่าเท่ากับ 0
i=0,j=0;                                                          ให้ตัวแปร i,jมีค่าเท่ากับ 0
}
void convert_Number()                                      สร้างฟังก์ชั่น ชื่อว่า convert_Number
{
printf("\t\t\t\tinput Number in Hex: ");                  แสดงข้อความ   input Number in Hex: 
                                                                      ออกหน้าจอ
scanf("%s",&sh);                                                รับค่าเป็นตัวอักษรมาเก็บไว้ในตัวแปร sh
i =strlen(sh);                                                    ให้ I มีค่าเท่ากับ ความยาวตัวอักษรในตัว   
                                                                     แปร sh ที่รับเข้า
while(i!=0)                                                      วนลูป ในขณะที่ I ไม่เท่ากับ 0 
{
ch = sh[j];                                                       ให้ ตัวแปร ch เท่ากับ ตัวแปร sh ในตัว     
                                                                     อาเรย์ลำดับที่ i
printf("\n\n\t\t\t\t-----Char no.%d-----\n",j+1);        แสดง ข้อความออกหน้าจอ
if('0' <= ch && ch <= '9')                                    สร้างเงื่อนไขถ้า'0'น้อยกว่าหรือกับค่าในตัว  
                                                                      แปร ch และ '9' มากกว่าหรือเท่ากับ ค่าใน 
                                                                      ตัวแปร ch
{
printf("\t\t\t\tCh:%d\t\t%d\n",ch,ch-'0');                แสดงค่า ch และ ch-'0' ออกทางหน้าจอ
number = number * 16;                                    ให้ตัวแปรnumber เท่ากับ numberคูณ 16
printf("\t\t\t\tNumber :%d\n",number);                 แสดงค่า ตัวแปร number ออกทางหน้าจอ
number = number + (ch - '0');                             ให้ตัวแปร number เท่ากับ number บวก 
                                                                      กับตัวแปร ch ลบ ด้วยตัวอักษร 0
}
if('A' <= ch && ch && ch <= 'F')                           สร้างเงื่อนไขถ้า'A'น้อยกว่าหรือกับค่าในตัว  
                                                                      แปร ch และ 'F' มากกว่าหรือเท่ากับ ค่าใน
                                                                      ตัวแปร ch
{
printf("\t\t\t\tCh:%d\t\t%d\n",ch,ch-'7');                แสดงค่าในตัวแปร ch และ ch-'7'
number = number * 16;                                    ให้ตัวแปร number เท่ากับnumber คูณ 16
printf("\t\t\t\tNumber :%d\n",number);                 แสดงค่า ตัวแปร number ออกทางหน้าจอ
number = number + (ch - '7');                             ให้ตัวแปร number เท่ากับ number บวก 
                                                                     กับตัวแปร  ch ลบ ด้วยตัวอักษร 7
}
 printf("\t\t\t\tNumber :%d\n",number);               แสดงค่า ตัวแปร number ออกทางหน้าจอ
 printf("\t\t\t\t-------------------");
 i--;                                                               ลดค่าตัวแปร I ลง 1
 j++;                                                             บวกค่าตัวแปร j ขึ้น 1
}
printf("\n\n\t\t\t ----------Output------------");             แสดงข้อความ Output  ออกทางหน้าจอ
printf("\n\t\t\t The O/p No in Decimal is : %d\n",number);     แสดงข้อความ และค่าในตัวแปร  
                                                                                     number                                             printf("\t\t\t -------------------------------");                 ออกหน้าจอออกทางหน้าจอ
}
};
void main()                                                     ฟังก์ชั่นหลัก
{
Number_Base b1;                                            ประกาศ object  ชื่อว่า b1
b1.convert_Number();                                      เรียกฟังก์ชั่น  convert_Number() ใน คลาส                                                                                        Number_Base มาใช้งาน
}                                                                  จบการทำงาน

4. ผลการทำงาน








http://nanajipathastyle.lnwshop.com