Переводим целую часть:
2765342:2=1382671(0)
1382671:2=691335(1)
691335:2=345667(1)
345667:2=172833(1)
172833:2=86416(1)
86416:2=43208(0)
43208:2=21604(0)
21604:2=10802(0)
10802:2=5401(0)
5401:2=2700(1)
2700:2=1350(0)
1350:2=675(0)
675:2=337(1)
337:2=168(1)
168:2=84(0)
84:2=42(0)
42:2=21(0)
21:2=10(1)
10:2=5(0)
5:2=2(1)
2:2=1(0)
1010100011001000011110 - это целая часть
Переводим дробную:
0,23*2=0,46(0)
0,46*2=0,92(0)
0,92*2=1,84(1)
0,84*2=1,68(1)
0,68*2=1,36(1)
0,36*2=0,72(0)
0,72*2=1,44(1)
0,44*2=0,88(0)
0,00111010 - дробная часть
В итоге:
1010100011001000011110,00111010 - это данное число в двоичной СС
===== PascalABC.NET =====
begin
// 1
var a := MatrRandom(5, 6, -10, 10);
a.Println(4);
var (kn, kz, kp) := (0, 0, 0);
for var i := 0 to a.RowCount - 1 do
for var j := 0 to a.ColCount - 1 do
if a[i, j] > 0 then
kp += 1
else if a[i, j] = 0 then
kz += 1
else
kn += 1;
Println('Отрицательных', kn, ' нулевых', kz,
' положительных', kp);
// 2
var b := MatrRandom(5, 6, 1, 100);
b.Println(5);
var s := b.ElementsWithIndices;
var imin := s.MinBy(p -> p[0]);
var imax := s.MaxBy(p -> p[0]);
Writeln('Индексы минимального элемента [',
imin[1] + 1, ',', imin[2] + 1, ']');
Writeln('Индексы максимального элемента [',
imax[1] + 1, ',', imax[2] + 1, ']');
// 3
var c := MatrRandom(5, 9, -3, 5);
c.Println(3);
Print('Количество положительных по строкам:');
c.Rows.Select(r -> r.Count(p -> p > 0)).Println
end.
Поделитесь своими знаниями, ответьте на вопрос:
У вас есть список пользователей отображенный в RecyclerView. С сервера приходит обновленный вариант этого списка, в котором эти же пользователи расположены в другом порядке. Как анимировано применить эти изменения к RecyclerView?
ответ:Для начала в onCreate() уберите эту строку:
chatContainer.clear()
Нет смысла чистить только созданный пустой список. Дальше я бы вам советовал следующим образом. Для начала при объявлении адаптера не нужно сразу ему передавать список:
lateinit var adapter: RecyclerChatAdapter
Дальше как только ваш список заполнен вы это проверяете в цикле и инициализируете адаптер:
when {
documentSnapshot != null -> {
for (dc in documentSnapshot.documentChanges) {
when (dc.type) {
DocumentChange.Type.ADDED -> {
val chat = dc.document.toObject(Chat::class.java)
chatContainer.add(chat) // Добавление данных в Recycler
if(chatContainer.size == documentSnapshot.documentChanges)
{
adapter = RecyclerChatAdapter(chatContainer)
}
}
}
}
}
}
и дальше сеттинг адаптера как и было у вас в вашем примере. Так же второй вариант как решить вашу проблему, но не уверен что получится, можно в цикле там где вы выводите сообщение в лог обновлять адаптер:
for (i in chatContainer) {
adapter.notifyDataSetChanged()
}