muszę konwertować wartości (podwójny/pływak w C#) do bajtów i potrzebuje pomocy ..
// Datatype długo 4byte -99999999,99 do 99999999,99
// Datatype długo 4byte -99999999,9 do 99999999,9
// Datatype krótki 2byte -999,99 do 999,99
// Datatype krótki 2byte -999.9 do 999,9
w moim " świat w domu "po prostu napisałbym go i ASCII.GetBytes().
Ale teraz, w tym świecie, musimy zrobić mniejszą przestrzeń.
Rzeczywiście "-99999999,99" zajmuje 12 bajtów zamiast 4! jeśli jest to "długi" typ danych.Konwersja typu danych 'długi' do tablicy bajtowej
[EDIT]
Z powodu jakiejś pomocy i odpowiedzieć na niektóre wyniki załączam tu
long lng = -9999999999L;
byte[] test = Encoding.ASCII.GetBytes(lng.ToString()); // 11 byte
byte[] test2 = BitConverter.GetBytes(lng); // 8 byte
byte[] mybyt = BitConverter.GetBytes(lng); // 8 byte
byte[] bA = BitConverter.GetBytes(lng); // 8 byte
Nadal musiał być jeden szczegół w lewo, aby dowiedzieć się. Lng-variabel ma 8 bajtów, nawet jeśli zawiera niższe wartości, tj. 99951 (nie będę zawierał próbki ToString()).
Jeśli wartość jest jeszcze "krótsza", co oznacza -999,99 - 999,99, to zajmie tylko 2 bajty.
[END EDIT]
Wiesz, że długie i krótkie są typu integralnego, więc nie ma miejsc dziesiętnych, prawda? A to, że długie jest 8 bajtów, a nie 4! To jest "int". – xanatos
Jestem zaskoczony, ile odpowiedzi istnieje, gdy pytanie nie ma sensu. Co on ma i co on próbuje zdobyć? –
@xanatos Twój punkt wart jest wspomnienia. Wartości są początkowo zmienne (ale to kolejne pytanie). – Independent