Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
4 / 4 / 0
Регистрация: 26.08.2014
Сообщений: 110
1

Int -> 4 byte

19.09.2014, 00:54. Показов 1800. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В с++ можно провернуть такой вот фокус


C++
1
2
3
4
5
6
    int i = 0b00010000000100000001000000010001;
    char *pd = (char *)(&i); 
    printf("%d\n", pd[0]);
    printf("%d\n", pd[1]);
    printf("%d\n", pd[2]);
    printf("%d\n", pd[3]);
получим
17
16
16
16
т.е. с помощью индекса мы побайтово разделили int на 4 char. В python такой финт возможен ?
ну кроме очевидного
Добавлено через 7 минут
>>> i0 =i & 0xFF
>>> i1 =(i & 0xFF00) >> 8
>>> i2 = (i & 0xFF0000) >> 16
>>> i3 = (i & 0xFF000000) >> 24

>>> print i0, i1, i2, i3
17 16 16 16

Добавлено через 20 минут
или
Python
1
binascii.unhexlify(hex(i)[2:])
Заранее спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.09.2014, 00:54
Ответы с готовыми решениями:

Варианты конвертации bool/byte/int в byte/int
В Си, если мне не изменяет память можно наоборот любые данные интерпретировать как true/false. А...

Что делает Read(byte[] buffer, int offset, int count) метод класса Stream
Что делает Read(byte buffer, int offset, int count) метод класса Stream. Приведите пример...

Int в byte
как поместить Integer переменную в массив байт? (желательно с примером)

Из 4-х Byte в int
Здравствуйте!!! Програмлю для себя программу, которая читает любой файл и выводит его в виде...

int в byte
как перевести int в byte а потом обратно в int???

3
Эксперт Python
4632 / 2050 / 361
Регистрация: 17.03.2012
Сообщений: 10,133
Записей в блоге: 6
19.09.2014, 10:22 2
Насчёт чистого питона не знаю, и возиться выяснять неохота. А с помощью numpy это делается примерно так:
Python
1
2
3
4
5
6
7
8
9
import numpy as np
 
i = 0b00010000000100000001000000010001
arr = np.array([i], dtype=np.int32)  # массив из одного элемента
arr.dtype = np.int8
 
# вуаля!
arr
array([17, 16, 16, 16], dtype=int8)
0
4 / 4 / 0
Регистрация: 26.08.2014
Сообщений: 110
19.09.2014, 22:46  [ТС] 3
хмм.. timeit говорит удивительные весчи.

Python
1
timeit.timeit(func, number = 100000)
numpy 0.41939616203308105
1й способ 0.02680206298828125
2й способ 0.4227180480957031

печаль беда numpy, самый удобный, но как видно - весьма медленный.
0
Эксперт Python
4632 / 2050 / 361
Регистрация: 17.03.2012
Сообщений: 10,133
Записей в блоге: 6
20.09.2014, 13:20 4
Да не может такого быть. Он просто меняет способ прочтения массива. Видимо, потери где-то в другом месте.

Добавлено через 2 минуты
Навскидку - время теряется на создании массива, идёт выделение памяти.
Если заранее заготовить буфер (напр, np.zeros), и его использовать - должно быть быстро.
0
20.09.2014, 13:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.09.2014, 13:20
Помогаю со студенческими работами здесь

Byte to int
Как перевести 2 байта в Integer? Пример: 255 255 - это будет 65535 204 144 - это 52368

imagecopyresized(resource dst_im, resource src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH)?
Обясните пожалуйста как пользоватся этой функцик imagecopyresized(resource dst_im, resource src_im,...

Конверт byte в int
Всем привет. Почему у меня не конвектируется byte в int? К примеру, я ввожу 257, у меня должно...

byte arr to int
int i; byte arr = {0x31,0x31,0x31,0x31,0x31}; нужно из массива arr пoлучить i=11111; как это...

String -> byte -> int
Доброго времени суток, возможно ли представить строку (пример) "cyberforum" в виде целочисленной...

From int to byte array
Добрый день CString Command; byte cm; int Count=0; int DECIMAl; Command =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru