я про то что ты не понимаешь что такое байтики и как числа хранятся в памяти компьютера
полагаю, что в оперативке они в двоичном виде
так сколько значений можно закодировать двумя битами?
4 как понимаю 00 01 10 11
возможно еще не все потеряно, а теперь 8 бит?
у тебя есть строка "Hello world" в кодировке utf-8. Сколько байт занимает эта строка?
честно заглянув в википедию увидел, что символ в utf-8 может занимать от 1 до 4 байта стало быть эта строка (пробел вроде как тоже символ) может занимать от 12 до 48 байт
теперь вот тебе пища для размышления. свое сообщение в сокет ты можешь записать вот так b'\x0bHello world'
привет) покурил статью, вроде чё-то понял) 1 момент на практике решил проверить, интересно стало что при утф8 на деле на символ используется 1 байт, но 7 бит, и 1 остается свободный, и по сути, как я понял, туда можно че-нить своё затолкать. объём информации будет передан тот же по факту, а содержимое будет другое итого если я в начале в кач-ве длины сообщения передаю 1 байт информации, то в самом сообщении у меня может быть максимум 9 символов, если я правильно посчитал, т.к. я могу описать длину сообщения только одним символом в таком случае. максимальным - 9 правильно я понял? вот это сейчас буду раскуривать только: "теперь вот тебе пища для размышления. свое сообщение в сокет ты можешь записать вот так b'\x0bHello world'"
> правильно я понял? нет. каким хуем ты вообще число 9 получил?
ну ты говоришь 1 байт в самом начале сообщения, который будет указывать на длину сообщения 1 байт = 1 символ это будет любая цифра от 0 до 9 типо вот так .sendall("9|test_text".encode())
> это будет любая цифра от 0 до 9 🤦♂️ продолжай закрывать пробелы в знаниях по ходу необходимости. у тебя отлично получается.
я вроде всё правильно написал
а тебе не приходило в голову что кроме символов 0 - 9 можно и другие "буковки использовать" ?
не приходило. я себе это представляю так, что там будет только цифра в кач-ве значения там - это в начале сообщения она же будет указывать на длину байт, которую надо прочесть, чтобы логически это считалось отдельным сообщением как я и привёл в примере, мб не очень удачном, но логику я в нём отобразил ты просто в частностях насчитал там другое значение, поэтому точнее это наверное будет выглядеть так: s.sendall("9|testtxt".encode()) я просто не очень понял где ты взял ещё 1 байт длины в прошлом примере
> я просто не очень понял где ты взял ещё 1 байт длины в прошлом примере b'\x0bHello world' 1 байт \x0b кодирует число 11 после него идут 11 байт сообщения Hello world
вот это я так и не понял пока, я ещё так и не начал раскуривать этот момент вообще не могу врубиться. я понимаю, что префикс 0b используется для обозначения бинарной последовательности типо 0110 (надеюсь правильно понимаю), но зачем тут обратный '\x' и 'b' в начале не понял 1 байт кодирует число 11 не кодирует 1 байт число 11 2 символа 2 байта
где то в твоем тексте закрались противоречия
а есть разница между числом и строкой?))
для особо одаренных. один байт может принимать 256 разных значений.
да я ж не тебе
а ой соре у меня у вас обоих авы зеленые
Ты ему 0b сначала расшифруй
если он добрался до сокетов, букварь по питону должен был бы прочитать.
да это ж не питон, тут классическая схема - переменные циклы if'ы - ну все питон я знаю, можно и в серверную разработочку
это тот байт, который указывает на саму длину сообщения, которое будет передано? на практике это так будет выглядеть? s.sendall("7|text".encode())
да сколько можно. я же тебе показал буквально как это будет выглядеть.
\x0b это же вертикальная табуляция Осенило)) Чекну ))
М... Тебе ж вроде бы вчера объясняли, что не следует воспринимать любой набор бит как текст.
это что, следующая серия погружения в сокеты?
Я в этом цирке уже не участвую
Обсуждают сегодня