Байт-массив уже представляет собой двоичное представление набора битов (как, например, короткий массив). Единственное отличие от битового массива состоит в том, что вы всегда получите бит в наборах из 8, и вы не можете адресовать каждый бит отдельно, не выполняя некоторые побитовые операции.
Обычно представление битов в String
(фрагмент текста) не выполняется на карточке. Он выполняется после того, как биты передаются в приложение на терминале. Возможно, вы заметили отсутствие типа String
на классической карте Java.
Как запрошено некоторый способ преобразования битджей (бит на голландском языке) в символы для Java-карты. Спасибо за загадку.
/**
* Converts an array of bytes, used as a container for bits, into an ASCII
* representation of those bits.
*
* @param in
* the input buffer
* @param inOffset
* the offset of the bits in the input buffer
* @param bitSize
* the number of bits in the input buffer
* @param out
* the output buffer that will contain the ASCII string
* @param outOffset
* the offset of the first digit in the output buffer
* @return the offset directly after the last ASCII digit
*/
public static final short toBitjes(final byte[] in, short inOffset,
final short bitSize, final byte[] out, short outOffset) {
for (short i = 0; i < bitSize; i++) {
final byte currentByte = in[inOffset + i/BYTE_SIZE];
out[outOffset++] = (byte) (0x30 + ((currentByte >> (7 - (i % BYTE_SIZE))) & 1));
}
return outOffset;
}
Не стесняйтесь переименовывать «битджы», конечно.
Использование:
// buffer containing 9 bits valued 10011001.1 in middle of buffer
final byte[] inBuffer = new byte[] { 0x00, (byte) 0x99, (byte) 0x80, 0x00 };
final short bitSize = 9;
// bit array starting at byte 1
final short inOffset = 1;
// or use JCSystem#makeTransientByteArray()
final byte[] outBuffer = new byte[40];
// ASCII start at offset 2
final short outOffset = 2;
// newOffset will be 2 + 9 = 11
short newOffset = toBitjes(inBuffer, inOffset, bitSize, outBuffer, outOffset);
И в JC контексте 'num' имеет тип' short'? – martijno
имеет тип байт –
Почему вы хотите иметь массив бит? Вы хотите выполнять определенные операции над битами? –