Строго, ASCII символите са дълги 7 бита и обикновено просто добавяме допълнителен 0
в началото, за да получим 8 бита. Разширенията на ASCII (като ISO 8859) имат 8-битови дълги знаци. Калкулаторът, който сте свързали, изглежда използва едно от тези разширения.
В Java дългите имат 64 бита (и един от тези битове се използва за знак), така че наистина можете да имате 8 части от 8-битови дълги символи.
Първо, ще трябва да преобразувате своя дълъг към масив от байтове (не целият въпрос е от значение за този случай, но част от него е -- особено частта, която споменава ByteBuffer).
byte[] bytes = ByteBuffer.allocate(8).putLong(someLong).array();
След като имате масива, преобразувайте всеки байт в char, като използвате просто преобразуване.
РЕДАКТИРАНЕ: Вместо ръчно конвертиране на всеки знак, можете да използвате java.lang.String(byte[]) конструктор.
String str = new String(bytes);
Имайте предвид, че това ще използва набора от знаци по подразбиране на платформата. Ако това не е желателно, можете да използвате един от конструкторите, които също приемат набор от знаци.
person
luiscubal
schedule
07.10.2013