
"హాయ్, అమిగో!"
"హాయ్, బిలాబో!"
"వివిధ సంఖ్యా వ్యవస్థల గురించి నేను మీకు కొంచెం చెప్పాలనుకుంటున్నాను."
"ప్రజలు దశాంశ వ్యవస్థను ఉపయోగిస్తున్నారని మీరు ఇప్పటికే విన్నారు. ఈ వ్యవస్థ యొక్క ప్రధాన వాస్తవాలు ఇక్కడ ఉన్నాయి:
1) సంఖ్యలను వ్రాయడానికి 10 అంకెలు ఉపయోగించబడతాయి: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
2) 543 సంఖ్య అంటే 5 వందలు + 4 పదులు + 3 ఒకటి.
"ఇది 5*100 + 4*10 + 3*1 రాయడానికి సమానం, దీనిని 5*10 2 + 4*10 1 + 3*10 0 అని వ్రాయవచ్చు .
వేల, వందలు, పదులు మరియు ఒకటి సంఖ్య 10 యొక్క శక్తులు అని గమనించండి.
1) సున్నా శక్తికి ఒకటి 10.
2) మొదటి శక్తికి పది 10.
3) రెండవ శక్తికి వంద అంటే 10.
4) మూడవ శక్తిలో వెయ్యి 10, మొదలైనవి.
"అవును. అర్థమైంది."
"కానీ ఇప్పుడు మన వద్ద కేవలం 8 అంకెలు మాత్రమే ఉన్నాయని ఊహించుకోండి. అప్పుడు మనకు అష్ట వ్యవస్థ ఉంది. దాని ప్రధాన వాస్తవాలు ఇక్కడ ఉన్నాయి:"
1) సంఖ్యలను వ్రాయడానికి 8 అంకెలు ఉపయోగించబడతాయి: 0, 1, 2, 3, 4, 5, 6, 7.
2) సంఖ్య 543 8 అంటే 5*8 2 +4*8 1 +3*8 0 . మరో మాటలో చెప్పాలంటే, ఇది 5*64 + 4*8 + 3*1 = 320+32+3 = 320+32+3=355 10
సంఖ్యను సూచించడానికి ఎన్ని అంకెలు ఉపయోగించబడతాయో సూచించడానికి నేను 8 మరియు 10ని సబ్స్క్రిప్ట్లుగా వ్రాసాను.
"నాకు అర్థమైందని అనుకుంటున్నాను. నేను సంఖ్యను ఆక్టల్ సిస్టమ్ నుండి దశాంశానికి మార్చగలనని అనుకుంటున్నాను. కానీ నేను బహుశా వేరే మార్గంలో వెళ్ళలేను."
"ఇది అంత కష్టం కాదు. ఇసుక కుప్పను తరలించడానికి మీరు అనేక ట్రక్కులను ఉపయోగించాలని ఊహించుకోండి. మీ వద్ద డంప్ ట్రక్కులు, సాధారణ ట్రక్కులు మరియు చాలా చిన్న ట్రక్కులు ఉన్నాయి. కానీ అవి నిండకపోతే ట్రక్కులు వెళ్లలేవు."
"ఎలా చేస్తావు?"
"మొదట, నేను డంప్ ట్రక్కులను నింపుతాను, ఎందుకంటే అవి చాలా పెద్దవి. ఆపై, ట్రక్కును నింపడానికి తగినంత ఇసుక లేదని నేను చూసినప్పుడు, నేను చిన్న వాహనాలకు మారతాను. ఆపై చిన్న వాహనాలకు మారాను."
"ఇది వాస్తవానికి ఇక్కడ చాలా సారూప్యంగా ఉంది. 355 10 సంఖ్యను తిరిగి అష్టాంశంగా మార్చడానికి ప్రయత్నిద్దాం ."
"మొదట, మనం దానిని 64 (8 2 )తో భాగించి, 35తో 5ని పొందుతాము. దీనర్థం మన సంఖ్య యొక్క మొదటి అంకె 5. ఆ తర్వాత మనం శేషాన్ని 8 (8 1 )తో భాగించి, శేషంతో 4 పొందుతాము. యొక్క 3. ఆ విధంగా, మనకు 543 8 సంఖ్య వస్తుంది ."
"అయితే, మీరు ఇతర దిశలో కూడా కదలవచ్చు. అన్నింటికంటే, 543 8 == 5*64+4*8+3 == ((5)*8+4)*8+3. మా అష్ట "పదులు " మరియు "వందలు" తప్పనిసరిగా 8 ద్వారా భాగించబడాలి. కాబట్టి, 8 ద్వారా భాగించబడిన మిగిలినవి మన అష్టాంశ అంకెలు అవుతుంది."
"మొదట, 355ని 8తో భాగిద్దాం. మనకు మిగిలిన 3తో 44 వస్తుంది. అంటే, 355=44*8+3. మరియు 44ని 5*8+4గా సూచించవచ్చు. అందువలన, 355= (5*8+ 4)*8+3; ఇక్కడ మా అంకెలు ఉన్నాయి: 5, 4, 3. మేము వెతుకుతున్న సంఖ్య 543 8 ."
"నేను అర్థం చేసుకున్నాను, కానీ ప్రతిదీ అర్థం చేసుకోవడానికి నేను కొంచెం సాధన చేయాలి."
"ప్రోగ్రామింగ్లో తరచుగా వేర్వేరు స్థావరాలు (అంటే నంబరింగ్ సిస్టమ్లో ఉపయోగించే అంకెల సంఖ్య) సంఖ్యలను ఉపయోగించడం జరుగుతుంది. అత్యంత ప్రజాదరణ పొందినవి 2, 8, 10, 16 మరియు 64."
"అయితే ఇది ఎందుకు అవసరం? మనకు 2, 8, 16 లేదా 64 అంకెలతో సూచించబడే సంఖ్యలు ఎందుకు అవసరం?"
"అంతర్గతంగా ప్రాసెసర్ ఎలా పనిచేస్తుందనేది. చాలా సరళంగా చెప్పాలంటే, వైర్ ద్వారా కరెంట్ ప్రవహిస్తున్నట్లయితే, దాని విలువ 1 అని, కరెంట్ లేకపోతే, దాని విలువ 0 అని చెబుతాము. అన్ని సంఖ్యలు మెమరీ కణాలలో నిల్వ చేయబడతాయి. ఇవి కణాలు చాలా ప్రాథమిక రూపకల్పనను కలిగి ఉంటాయి మరియు అవి 0 లేదా 1 మాత్రమే నిల్వ చేయగలవు."
"కానీ అటువంటి సరళీకరణ (కేవలం 0 లేదా 1) ప్రాసెసర్ లోపల మూలకాలను మరియు మెమరీని చాలా చిన్నదిగా చేయడం సాధ్యపడింది. ఆధునిక ప్రాసెసర్లు మరియు మెమరీ మాడ్యూల్స్లో బిలియన్ల కొద్దీ విభిన్న మూలకాలు ఉంటాయి. మరియు వాటి వైశాల్యం తరచుగా చదరపు సెంటీమీటర్ కంటే ఎక్కువగా ఉండదు."
"ఓహో. ఇప్పుడు తెలిసింది."
"ఇప్పుడు మనం బైనరీ సంఖ్యల వైపుకు తిరుగుతాము. ఇక్కడ మనకు ఆక్టల్తో సమానంగా ఉంటుంది, చాలా సులభం."
1) సంఖ్యలను వ్రాయడానికి 2 అంకెలు ఉపయోగించబడతాయి: 0, 1.
2) సంఖ్య 101 2 అంటే 1*2 2 + 0*2 1 + 1*2 0 . మరో మాటలో చెప్పాలంటే, ఇది 1*4+0*2+1*1 =4+1=51 10
"అవును. నాకు గుర్తుంది. 0 లేదా 1 విలువను కలిగి ఉండే ఒక సెల్ను బిట్ అంటారు. కానీ అది ఎక్కువ సమాచారాన్ని నిల్వ చేయదు, కాబట్టి వాటిని 8 సమూహాలుగా కలుపుతారు. ఈ సమూహాలను బైట్లు అంటారు. "
"సరిగ్గా. బైట్ అనేది ఎనిమిది బిట్ల సమూహం. ఇది క్రింది విలువలను నిల్వ చేయగలదు: 00000000, 00000001, ... 11111111. ఈ విలువలు దశాంశ సంఖ్యలు 0,1, ... 255కి అనుగుణంగా ఉంటాయి. ఇది మనకు మొత్తం ఇస్తుంది 256 విలువలు."
జావాలో అతిపెద్ద పూర్ణాంకం ఏది? లేదా దాని రకం ఏమిటి?
"ఒక లాంగ్. లాంగ్ 8 బైట్లను కలిగి ఉంటుంది. మరో మాటలో చెప్పాలంటే, 64 బిట్లు. ఇది -2 63 నుండి 2 63 -1 వరకు విలువలను నిల్వ చేయగలదు .
"అవును. సంఖ్యలను దశాంశం నుండి బైనరీకి లేదా వైస్ వెర్సాకి ఎలా మార్చాలో నేను టచ్ చేయను. లేకపోతే, పాఠం చాలా పొడవుగా ఉంటుంది."
"బదులుగా, హెక్సాడెసిమల్ సిస్టమ్ గురించి కొంచెం మాట్లాడుకుందాం."
"అవును, ఇది చాలా ఆసక్తికరంగా ఉంది. బైనరీ మరియు ఆక్టల్ సిస్టమ్ల కోసం, మేము వరుసగా రెండు మరియు ఎనిమిది నుండి అంకెలను వదిలించుకున్నాము. అయితే మనం ఇక్కడ ఏమి చేస్తాము? కొత్త అంకెలను జోడించాలా?"
"సరిగ్గా! ఇది చూడు:"
1) సంఖ్యలను వ్రాయడానికి 16 అంకెలు ఉపయోగించబడతాయి: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
2) సంఖ్య 543 16 అంటే 5*16 2 + 4*16 1 + 3*16 0 . మరో మాటలో చెప్పాలంటే, ఇది 5*256+4*16+3*1 = 1280+64+3 = 1347 10
"కాబట్టి, మేము అక్షరాలను అంకెలుగా జోడించాము? O_o"
"అవును. మరియు పెద్ద విషయం ఏమిటి? అక్షరాలు సరిగ్గా పని చేస్తున్నప్పుడు కొత్త సంఖ్యలను ఎందుకు కనిపెట్టాలి? దాన్ని తనిఖీ చేయండి:"
హెక్సాడెసిమల్ అంకె | దశాంశ విలువ |
---|---|
0 | 0 |
1 | 1 |
8 | 8 |
9 | 9 |
ఎ | 10 |
బి | 11 |
సి | 12 |
డి | 13 |
ఇ | 14 |
ఎఫ్ | 15 |
"నేను కూడా దశాంశం నుండి హెక్సాడెసిమల్కి మార్చడం గురించి మాట్లాడను. అయితే ఇక్కడ ఒక ఆసక్తికరమైన విషయం ఉంది. హెక్సాడెసిమల్ అంకె 0 నుండి 15 వరకు విలువలతో సరిగ్గా 4 బిట్లచే సూచించబడుతుంది. కాబట్టి, ఒక బైట్ను ఎనిమిది బైనరీ అంకెలతో వ్రాయవచ్చు. (0 లేదా 1) లేదా రెండు హెక్సాడెసిమల్ అంకెలు."
"ఇదిగో ఒక ఉదాహరణ:"
దశాంశ సంఖ్య | బైనరీ సంఖ్య | హెక్సాడెసిమల్ సంఖ్య |
---|---|---|
0 | 0000 0000 | 00 |
1 | 0000 0001 | 01 |
15 | 0000 1111 | 0f |
16 | 0001 0000 | 10 |
31 | 0001 1111 | 1f |
32 | 0010 0000 | 20 |
128 | 1000 0000 | 80 |
129 | 1000 0001 | 81 |
255 | 1111 1111 | ff |
"హెక్సాడెసిమల్ ప్రాతినిధ్యం సులభంగా బైనరీగా మార్చబడుతుంది (మరియు వైస్ వెర్సా). అందుకే ప్రోగ్రామింగ్లో బైనరీ (0 సె మరియు 1లను ఉపయోగించి) సంఖ్య యొక్క అంతర్గత బైట్ ప్రాతినిధ్యం చాలా అరుదుగా ఇవ్వబడుతుంది. అది చాలా పొడవుగా మరియు అర్థం చేసుకోవడం కష్టంగా ఉంటుంది. హెక్సాడెసిమల్ సంజ్ఞామానం మరింత చదవగలిగే మరియు కాంపాక్ట్."
"నేను అంగీకరిస్తున్నాను. నాకు కూడా నచ్చింది."
"మార్గం ద్వారా, వివిధ నంబరింగ్ సిస్టమ్లలో సంఖ్యలను నేరుగా కోడ్లో వ్రాయడానికి జావా మిమ్మల్ని అనుమతిస్తుంది:"
బేస్ | ప్రత్యేకమైన లక్షణము | ఉదాహరణలు | చెల్లని సంఖ్యలు |
---|---|---|---|
2 | సంఖ్య ప్రారంభంలో 0b | 0b 00001111 | 0b 11111 2 1 |
8 | సంఖ్య ప్రారంభంలో 0 | 0 1234343 | 0 12 8 |
10 | ఏదీ లేదు | 95459 | 909 ఎ |
16 | సంఖ్య ప్రారంభంలో 0x | 0x 10ff | 0x 1c gh |
"అద్భుతమైన పాఠం. ధన్యవాదాలు, బిలాబో."
GO TO FULL VERSION