2014-12-22 1 views
0

Мне нужно передать ~0L к моей функции, как не могу сделать это, независимо от того, что я делаю ~ 0 превращаются в -1Как создать длинное количество всех бит на 1

Это код C :

812 int result = GetProperty(window, property_name, 
813       (~0L), // (all of them) 
814       &type, &format, &num_items, &properties); 

Это мой jsctypes:

var result = GetProperty(window, property_name, ctypes.long(~0), type.address(), format.address(), num_items.address(), properties.address() 

Обратите внимание на ctypes.long(~0), как сделать это будет 111111111111111111111111111111 для 32-битных слэш 64 1 для 64-битной?

Благодаря

ссылка тема: What does (~0L) mean?

ответ

0

Решение было использовать ctypes.long(~0) это хорошо для 32 бит и 64 бит :) Благодаря @arai.

21:45 noida Как использовать ~ 0L в jsctypes?

22:07 arai noida: 32bit или 64bit?

22:11 Нойды вы можете показать мне, как сделать для обоих плз

22:17 араи Нойды: Я думаю ctypes.int32_t (~ 0) и ctypes.int64_t (~ 0) будет работать

22:20 noida -0x80000000

22:20 noida, что не будет работать?

22:20 араи использует ctypes.long для параметра, так ctypes.long (~ 0) было бы лучше

22:23 араи ~ 0L является 0xFFFFFFFFFFFFFFFF, верно?

22:24 Нойды я думал, что это было: 0x7ffffff

22:29 Arai printf("%lx\n", ~0L); выходы "ffffffffffffffff"

22:31 араи было бы лучше использовать ctypes.long(~0) для последовательности

22 : 33 noida, также используя длинный метод, будет крест 64/32 бит вправо?

22:37 arai «Это автоматически преобразуется в объект Int64 JavaScript на всех платформах, поскольку неизвестно, является ли это 32-разрядным или 64-битным значением. Это сделано для обеспечения совместимости».

22:37 араи https://developer.mozilla.org/en-US/docs/Mozilla/js-ctypes/js-ctypes_reference/ctypes

1

объявить его беззнаковое долго, ~0UL

+0

Можете ли вы показать JS-ctypes синтаксис :) – Noitidart

+0

я должен был Google, но это ctypes.unsigned_long (~ 0) выглядит правильно? Обязательно объявляйте соответствующий код на C++ так же, как ожидающий длинный без знака. В C++ ~ 0 (все биты) также представляет собой -1L; независимо от того, рассматривается ли она как -1L или ~ 0UL, зависит от того, как она объявлена. – Andras

+0

О, я думал, что вы парень js-ctypes. Да, я пробовал это, я не уверен, что это правильный способ сделать это.Я не получаю данные, которые могут иметь какое-то отношение к этому. – Noitidart

 Смежные вопросы

  • Нет связанных вопросов^_^