የቁጥር መሠረቶች በኮምፒውተር ሳይንስ ውስጥ
በኮምፒውተር ቴክኖሎጂ እና በሶፍትዌር ልማት ውስጥ መረጃዎችን በተለያዩ የቁጥር መሠረቶች (number bases) መወከል የተለመደ ተግባር ነው። ኮምፒውተሮች በኤሌክትሮኒክ ሰርኪውቶቻቸው ውስጥ መረጃን የሚያከማቹትና የሚያሰሉት በባይነሪ (መሠረተ-ሁለት) ቁጥሮች ሲሆን፣ የሰው ልጅ ደግሞ በዕለት ተዕለት ሕይወቱ ዴሲማል (መሠረተ-አሥር) ቁጥሮችን ይጠቀማል። በሌላ በኩል፣ የባይነሪ ቁጥሮችን በይበልጥ አጠር ባለና በቀላሉ ሊነበብ በሚችል መልኩ ለመወከል ሄክሳዴሲማል (መሠረተ-አሥራ ስድስት) እና ኦክታል (መሠረተ-ስምንት) የቁጥር ሥርዓቶች በሰፊው ጥቅም ላይ ይውላሉ።
እነዚህን የተለያዩ የቁጥር መሠረቶች እርስ በእርስ ማገናኘትና መለዋወጥ ለፕሮግራመሮች፣ ለኔትወርክ መሐንዲሶችና ለቴክኒክ ባለሙያዎች እጅግ አስፈላጊ ነው። ይህ የባይነሪ/ሄክስ መቀየሪያ መሣሪያ እነዚህን የቁጥር ሥርዓቶች ያለምንም ውስብስብ ስሌት ወዲያውኑ እርስ በእርስ ለመቀየርና የጽሑፍ መረጃዎችን ወደ ባይት እሴቶች ለመለወጥ የተዘጋጀ ነው።
የቁጥር ሁነታ (Number mode) አሠራርና ደንቦች
በመሣሪያው ላይ "ቁጥር" የሚለውን ሁነታ ሲመርጡ፣ በአራቱ ዋና ዋና የቁጥር መሠረቶች መካከል ፈጣን ልወጣ ማድረግ ይችላሉ። በአራቱ የጽሑፍ ሳጥኖች (ባይነሪ፣ ኦክታል፣ ዴሲማል፣ ሄክስ) ውስጥ በአንዱ ላይ መተየብ ሲጀምሩ፣ መሣሪያው ሌሎቹን ሦስት መስኮች ወዲያውኑ ያዘምናል።
በዚህ ሁነታ የሚከተሉት ደንቦችና የአሠራር ባህሪያት ይተገበራሉ፦
- የግቤት ቅርጸቶች፦ ቁጥሮችን ሲያስገቡ መሪ የሲቀነስ ምልክትን፣ በቁጥሩ ዙሪያ ያሉ ክፍት ቦታዎችን (spaces)፣ እንዲሁም እንደ
0b(ለባይነሪ)፣0o(ለኦክታል) ወይም0x(ለሄክስ) ያሉ ቅድመ-ቅጥያዎችን መጠቀም ይቻላል። በተጨማሪም ቁጥሮችን በቀላሉ ለማንበብ እንዲረዳ በቁጥሮች መካከል የሚገቡ የታች ሰረዞችን (underscores) እና የባዶ ቦታ መለያዎችን (whitespace separators) መሣሪያው ይቀበላል። - አሉታዊ ቁጥሮች፦ አሉታዊ ቁጥሮች በሚቀየሩበት ጊዜ በሁሉም የቁጥር መሠረቶች ውስጥ መሪ የሲቀነስ (-) ምልክትን ይይዛሉ።
- ትክክለኛነትና መጠን፦ ለቁጥሮች ምንም ዓይነት ተግባራዊ የክምችት ወይም የደረጃ ገደብ የለም። እሴቶቹ ያለ ምንም ማጠጋጋት (rounding) በትክክል ይቀየራሉ። ቁጥሮቹ የሚተነተኑትና የሚቀረጹት BigInt የተባለውን የኮምፒውተር ሥርዓት በመጠቀም ሲሆን፣ ይህም እስከ 4,096 ቁምፊዎች (characters) ርዝመት ያላቸውን እጅግ ከፍተኛ ትክክለኛነት ያላቸውን ሙሉ ቁጥሮች (arbitrary precision integers) ለመደገፍ ያስችላል።
- የውጤት አቀራረብ፦ የሄክሳዴሲማል ውጤት ሁልጊዜ በትላልቅ ፊደላት (uppercase letters) ይቀርባል።
- የሁኔታ መግለጫ፦ የቁጥር ልወጣ በተሳካ ሁኔታ ሲጠናቀቅ የመሣሪያው ሁኔታ "ተቀይሯል።" ወደሚል ይቀየራል። ግቤቱ ሲጠፋ ደግሞ ሁኔታው "ጸድቷል።" ይሆናል።
የማይፈቀድ ወይም ከተመረጠው መሠረት ውጭ የሆነ ቁምፊ ካስገቡ፣ መሣሪያው "ለዚያ መሠረት ትክክለኛ ቁጥር አይደለም — ሊይዛቸው የማይችላቸውን አሃዞች ያረጋግጡ።" የሚለውን የስህተት መልዕክት ያሳያል።
የጽሑፍ ሁነታ (Text mode) እና የባይት ልወጣ
የጽሑፍ ሁነታ ማንኛውንም ጽሑፍ ወደ ባይት እሴቶች (bytes) ለመለወጥ ወይም የባይት እሴቶችን መልሶ ወደ መደበኛ ጽሑፍ ለመቀየር ያገለግላል። ጽሑፎችን በባይት ደረጃ ለመወከል የ UTF-8 ኢንኮዲንግ ሥርዓት ጥቅም ላይ ይውላል።
በዚህ ሁነታ ሁለት የአቅጣጫ አማራጮች አሉ፦
1. ጽሑፍ → ባይቶች
ማንኛውንም ጽሑፍ በ "ግቤት" ሳጥን ውስጥ ሲተይቡ፣ መሣሪያው ጽሑፉን በ UTF-8 ኢንኮዲንግ መሠረት ወደ ባይት እሴቶች በመቀየር በ "ውጤት" ሳጥን ውስጥ ያሳያል።
- ለባይት ውክልናው የሚጠቀሙበትን የባይት መሠረት (ባይነሪ፣ ሄክስ፣ ዴሲማል ወይም ኦክታል) መምረጥ ይችላሉ።
- በውጤቱ ላይ እያንዳንዱ ባይት በተመረጠው መሠረት ተለይቶ የሚቀመጥ ሲሆን፣ ወጥ የሆነ ቅርጽ እንዲኖረው ለማድረግ መሪ ዜሮዎች ይጨመሩበታል። የባይነሪ ውጤት እስከ 8 ቢት፣ የኦክታል ውጤት እስከ 3 ቢት፣ እንዲሁም የሄክሳዴሲማል ውጤት እስከ 2 ቢት ድረስ በመሪ ዜሮዎች ይሞላል። የዴሲማል ውጤት ግን በመሪ ዜሮዎች አይሞላም
- በዚህ ሁነታ ከፍተኛው የጽሑፍ ግቤት ገደብ 200,000 ቁምፊዎች ነው። ይህንን ገደብ ካለፉ "ለዚህ መሣሪያ በጣም ረጅም ነው — አነስ ያለ ግቤት ይሞክሩ።" የሚል ስህተት ይታያል።
- ኤንኮዲንግ በተሳካ ሁኔታ ሲጠናቀቅ ሁኔታው "ኤንኮድ ተደርጓል።" ወደሚል ይለወጣል።
2. ባይቶች → ጽሑፍ
በተመረጠው የባይት መሠረት (ባይነሪ፣ ሄክስ፣ ዴሲማል ወይም ኦክታል) የተቀመጡ የባይት እሴቶችን በማስገባት ወደ መደበኛ ጽሑፍ መመለስ ይቻላል።
- ዲኮድ የሚደረጉት የባይት እሴቶች በባዶ ቦታ (whitespace) ወይም በኮማ (comma) ሊለያዩ ይችላሉ።
- እያንዳንዱ የባይት እሴት በተመረጠው መሠረት ከአንድ ባይት መጠን (ከ 0 እስከ 255 ባለው ክልል ውስጥ) መሆን አለበት።
- ዲኮዲንግ በተሳካ ሁኔታ ሲጠናቀቅ ሁኔታው "ዲኮድ ተደርጓል።" ወደሚል ይለወጣል።
በዲኮዲንግ ወቅት ሊያጋጥሙ የሚችሉ ስህተቶች፦
- ከተመረጠው መሠረት ውጭ የሆኑ ቁምፊዎችን ካስገቡ ወይም እሴቶቹ ከ 0–255 ክልል ውጭ ከሆኑ "ትክክለኛ የባይት ኮዶች አይደሉም — እያንዳንዱ እሴት በተመረጠው መሠረት አንድ ባይት (0–255) መሆን አለበት።" የሚል ስህተት ይታያል።
- የገቡት ባይቶች ትክክለኛ የ UTF-8 ባይት ቅደም ተከተልን የማይከተሉ ከሆነ "እነዚያ ባይቶች ትክክለኛ UTF-8 አይደሉም፣ ስለዚህ እንደ ጽሑፍ ሊታዩ አይችሉም።" የሚል የስህተት መልዕክት ይወጣል።
የግላዊነት እና የደህንነት መረጃ
ይህ መሣሪያ የተጠቃሚዎችን መረጃ ደህንነት በአስተማማኝ ሁኔታ ይጠብቃል። እያንዳንዱ የመቀየር እና የኢንኮዲንግ/ዲኮዲንግ ሂደት ሙሉ በሙሉ የሚከናወነው በእርስዎ የድር ብሮውዘር (browser) ውስጥ ብቻ ነው። ያስገቧቸው ቁጥሮች፣ የጽሑፍ መረጃዎች ወይም የባይት እሴቶች ወደ የትኛውም የውጭ ሰርቨር አይጫኑም እንዲሁም መሣሪያዎን መቼም አይለቁም።
ተደጋግሞ የሚጠየቁ ጥያቄዎች (FAQ)
እዚህ ምን መቀየር እችላለሁ?
ሁለት ነገሮችን። የቁጥር ሁነታ (Number mode) ባይነሪ፣ ኦክታል፣ ዴሲማል እና ሄክሳዴሲማልን ያገናኛል — አንዱን መስክ ሲያስተካክሉ ሌሎቹ ወዲያውኑ ይዘምናሉ። የጽሑፍ ሁነታ (Text mode) ማንኛውንም ጽሑፍ በመረጡት መሠረት ወደ ባይት እሴቶች ይቀይራል፣ እና እነዚያን ባይቶች መልሶ ወደ ጽሑፍ ያነባል።
አሉታዊ እና በጣም ትላልቅ ቁጥሮችን ያስተናግዳል?
አዎ። አሉታዊ ቁጥሮች በሁሉም መሠረቶች ውስጥ መሪ ሲቀነስ (-) ምልክትን ይይዛሉ፣ እና የሚያሳስብ የክምችት ገደብ የለም — እሴቶቹ ያለ ምንም ማጠጋጋት (rounding) በትክክል ይቀየራሉ። የተወሰነ ስፋት ያለው የtwo’s-complement እይታ የለም፣ ምክንያቱም ይህ ትርጉም የሚኖረው የቢት ስፋት ሲመርጡ ብቻ ነው።
የእኔ ግቤት ወደ የትኛውም ቦታ ይላካል?
አይደለም። ሁሉም ነገር በአካባቢው በብሮውዘርዎ ውስጥ ስለሚሰላ፣ የሚተይቡት ምንም ነገር አይጫንም።