![]() |
|
|
|
|
#1 |
|
Senior Member
|
Насколько я знаю, поддержки массивов нет, но в некоторых случаях можно обойтись без них:
Код:
# Расчёт CRC16.
crc () {
# Преобразуем выражение в строку.
str="$1"
# Расчитываем количество циклов.
cnt=$((${#1}-2))
# Начальное значение.
crc=0xFFFF
for i in `seq 0 2 $cnt`; do
crc=$(( crc ^ 0x${str:$i:2} ))
for j in `seq 0 7`; do
c=$(( crc >> 1 ))
if [ $(( crc & 1 )) = 1 ]; then
let 'c ^= 0xA001'
fi
crc=$c
done
done
# Меняем местами байты.
c=$(( crc & 0xFF ))
c=$(( c << 8 ))
crc=$(( crc >> 8 ))
crc=$(( crc + c ))
# Переводим в hex вид.
printf "%04X" $crc
}
__________________
Россия навсегда! |
|
|
|
|
|
#2 | |
|
Senior Member
Регистрация: 21.12.2014
Сообщений: 164
Вес репутации: 0 ![]() |
Цитата:
мне надо произвольный доступ по индексу к строковому массиву. Мне даже где-то попадался рабочий пример "типа строкового массива", но с последовательным доступом по инкрементному индексу - может быть этот пример еще как то удастся приспособить... Ладно, спасибо, будем думать... п.с. странно, циклы есть, а массивов нету :-) Последний раз редактировалось SergeS; 13.01.2015 в 02:30. |
|
|
|
|
![]() |
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|
|