Använd bc för att omvandla talsystem
Att kunna omvandla mellan olika
talsystem med papper och penna är
bra att kunna. Men ibland behöver vi bara ett svar – snabbt. Det här kan
programmet bc
hjälpa dig med. Programmet bc
finns i de flesta Unixliknande
system, så som Linux, FreeBSD, macOS med flera. Förkortningen bc
står för
Basic Calculator men benämns även Bench Calculator.
Som en vanlig miniräknare
När vi först startar bc
kan vi använda det som en vanlig miniräknare,
exempelvis:
$> bc
8*8
64
3^5
243
a=4
b=2
a+b
6
Avsluta bc
med kommandot quit
.
Tänk på vi måste starta bc
med flaggan -l
ifall vi ska kunna använda
decimaler.
$> bc -l
5.8*3.3
19.14
quit
Omvandla mellan olika talsystem
Vi kan ställa in både in-talsystemet och ut-talsystemet i bc
. Som
standard används det vanliga decimala talsystemet med basen 10. För att
omvandla talet 15 till hexadecimalt behöver vi därför bara ändra
ut-talsystemet i bc
. Detta gör vi med obase
. Här sätter vi obase
till
16 (hexadecimalt) men låter ibase
(in-talsystemet) vara orört. Därefter
anger vi talet 15 till bc
och får svaret F
.
$> bc
obase=16
15
F
Om vi istället vill omvandla från binärt till hexadecimalt ändrar vi även
ibase
. Här sätter vi ibase
till 2 (binärt) och låter obase
vara 16
(hexadecimalt) från det föregående exemplet. Vi omvandlar sedan det binära
talet 111 till hexadecimalt.
ibase=2
111
7
OBS: Om vi nu försöker ändra ibase
eller obase
kommer dessa att tolkas
som binära tal eftersom vi har ibase
satt till 2. För att återställa ibase
är det enklaste att avsluta bc
med quit
och börja om igen. För att slippa
avsluta bc
och starta det igen kan vi istället använda bc
direkt från
kommandoraden. Vi anger då obase
, ibase
och talet med hjälp av echo
, och
omdirigerar det sedan till bc
.
För att omvandla det binära talet 110100100 till oktalt (basen 8) kan vi skriva
följande kommando direkt i skalet (kom ihåg att sätta obase
före ibase
):
$> echo "obase=8; ibase=2; 110100100" | bc
644
För att istället omvandla det hexadecimala talet FF till decimalt (basen 10) gör vi på följande sätt:
$> echo "ibase=16; FF" | bc
255
Ett sista exempel, där vi omvandlar det oktala talet 644 till hexadecimalt:
$> echo "obase=16; ibase=8; 644" | bc
1A4
Tyckte du om den här artikeln? Då kanske du även tycker om någon av våra böcker.
Relaterat
-
Hur procent och bråktal hänger ihop
Procenttal kan skrivas som bråktal och vice versa. Att skriva om procent till bråktal kan därför hjälpa förståelsen för hur man räknar med procent.
-
Roliga egenskaper hos polygoner
Det finns många roliga och intressanta egenskaper hos polygonerna. Det mest intressanta är kanske polygonernas vinkelsumma, och hur dessa kan räknas fram genom att rita trianglar inuti polygonerna.
-
Python och trigonometri
Lite uppfräschning av trigonometri och Python är aldrig fel. Här får vi lära oss hur man kan rita upp rätvinkliga trianglar – direkt i Python – om vi känner till två av sidorna. För detta kommer vi att använda modulerna turtle och math.
-
Ett av mina första nyttoprogram
Vilken nostalgi det var när jag gick igenom programmen på min gamla grafräknare från gymnasiet, en TI-83. Där hittade jag ett av mina första nyttoprogram jag någonsin skrivit. Det var ett program skrivit i ett språk kallat TI-BASIC, en version av Basic för Texas Instruments grafräknare. Året då jag skrev programmet är troligen år 2000 eller 2001.
Senaste nyheterna och inläggen
-
Fortsatt låga IPv6-siffror i Sverige
Det är fortfarande knappt fem procent av internetanvändarna som har tillgång till IPv6. Det visar Post- och telestyrelsens senaste kartläggning. Samtidigt ökar andelen internetoperatörer som använder adressöversättning.
-
Hårda och mjuka länkar i Linux
Hårda länkar är filnamn som pekar på en inode. Mjuka länkar är en speciell filtyp som pekar på hårda länkar, eller andra mjuk läknar. En inode i sin tur innehåller metadata om filen, samt information om var den faktiska datan finns lagrad på disken.
-
Drifta din egen molnlagring med Seafile
Seafile är ett program med öppen källkod för att synkronisera och lagra filer. Det kan liknas med ett privat Dropbox. Seafile har både en webbklient och klienter för Linux, Windows, macOS, Android och iPad/iPhone.
-
Ditt gamla telefonnummer är en säkerhetsrisk
Telefonnummer som inte längre är i bruk återanvänds. Det innebär att nästa person som får ditt gamla telefonnummer kan använda det för att ta sig in på dina onlinekonton, exempelvis Facebook.
CyberInfo Sverige är ett IT- och medieföretag i nordvästra Skåne som tillhandahåller böcker, utbildningar, nyheter och konsulttjänster inom Linux, säkerhet och programmering.
CyberInfo Sverige är godkänd för F-skatt, är momsregistrerat och innehar
utgivningsbevis för webbplatsen www.cyberinfo.se.