webForumDet fria alternativet

Skapa binära filer

.NET

3 svar · 313 visningar · startad av P

Medlem sedan jan. 20012 204 inlägg
Frågan#1

Tjabba!

Har en text-sträng som består av 1:or och 0:or t.ex "010000101010..."
Denna sträng vill jag spara ner binärt. Detta för att jag vill spara ner det på ett ROM-minne och programet som ska spara ner detta kräver att den fil som kommer in är binär.

Hur gör jag detta? Har försökt med kod kopierad från msdn:

FileStream fs = new FileStream(FILE_NAME, FileMode.CreateNew);
// Create the writer for data.
BinaryWriter w = new BinaryWriter(fs);
// Write data to Test.data.
w.Write("100001010101");
w.Close();

Kanske fungerar det? Öppnar jag filen i notepad så ser jag mina 1:or och 0:or och ett konsigt tecken framför. Men jag vill ju se hur den ser ut binärt. Kan man göra det på något sätt?

Medlem sedan juni 20034 013 inlägg
#2

Du behöver konvertera din sträng till en int. Har tyvärr inte använt c# så jag vet inte vad det finns för såna funktioner. Tänk dock på att funktionen måste köpa att strängen representerar ett tal i basen 2.

Medlem sedan maj 20018 027 inlägg
#3

P skrev:

Hur gör jag detta? Har försökt med kod kopierad från msdn:

FileStream fs = new FileStream(FILE_NAME, FileMode.CreateNew);
// Create the writer for data.
BinaryWriter w = new BinaryWriter(fs);
// Write data to Test.data.
w.Write("100001010101");
w.Close();

Kanske fungerar det? Öppnar jag filen i notepad så ser jag mina 1:or och 0:or och ett konsigt tecken framför. Men jag vill ju se hur den ser ut binärt. Kan man göra det på något sätt?

Problemet med denna lösning är att du inte uppnår det resultat som jag gissar att du vill ha. I själva verket kommer varje etta och nolla representeras av åtta bitar vardera. Dessa bitar kommer representera ascii-koderna för tecknen "1" och "0". Om du vill att ettorna och nollorna ska skrivas som enskilda bitar, skulle jag rekommendera dig att kolla upp hur man använder bitwise-operatorer för att få kontroll på allt ner till minsta bit.

Medlem sedan jan. 20012 204 inlägg
#4

UlfT skrev:

Problemet med denna lösning är att du inte uppnår det resultat som jag gissar att du vill ha. I själva verket kommer varje etta och nolla representeras av åtta bitar vardera. Dessa bitar kommer representera ascii-koderna för tecknen "1" och "0". Om du vill att ettorna och nollorna ska skrivas som enskilda bitar, skulle jag rekommendera dig att kolla upp hur man använder bitwise-operatorer för att få kontroll på allt ner till minsta bit.

Yepps, fungerade efter lite omkodning till int/byte och sen skriva!

265 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
116 ms — ändringar (db)