|
Напомните, чем DWORD от ULONG отличается? | ☑ | ||
---|---|---|---|---|
0
andrewks
01.02.12
✎
08:52
|
сабж.
|
|||
1
aleks-id
01.02.12
✎
08:54
|
дворд со знаком улонг без?
|
|||
2
smaharbA
01.02.12
✎
08:54
|
улонг это два положительных лонга
а дворд это два слова, слово оно бывает такое "и" и такое "автофотовеломототелерадиомонтер" |
|||
3
Ненавижу 1С
гуру
01.02.12
✎
08:55
|
typedef unsigned long DWORD;
|
|||
4
aleks-id
01.02.12
✎
08:55
|
ну и первый 32 бита а второй 64
|
|||
5
smaharbA
01.02.12
✎
08:55
|
или нужен практический смысл и конкретика ?
|
|||
6
andrewks
01.02.12
✎
08:56
|
(4) это почему? размерность одинаковая
|
|||
7
aleks-id
01.02.12
✎
08:56
|
(6) да ну?
|
|||
8
andrewks
01.02.12
✎
08:56
|
(3) т.е. абсолютно идентично? и байт-ордеринг одинаковый?
|
|||
9
andrewks
01.02.12
✎
08:59
|
(7) ну да
|
|||
10
Ненавижу 1С
гуру
01.02.12
✎
08:59
|
смотря где ))
|
|||
11
andrewks
01.02.12
✎
09:00
|
(10) на интеле )
|
|||
12
andrewks
01.02.12
✎
09:01
|
(1) оба беззнаковые
|
|||
13
andrewks
01.02.12
✎
09:03
|
короче, если я правильно понимаю, это разные названия одного и того же объекта в разных религиях, так?
|
|||
14
Ненавижу 1С
гуру
01.02.12
✎
09:10
|
(13) В с++ да, в C# ulong в два раза длиннее, но там нет dword
|
|||
15
ДенисЧ
01.02.12
✎
09:12
|
(13) нет. На разных битностях платформы лонг и дворд могут иметь разную длину. Особенно в старых виндах.
|
|||
16
andrewks
01.02.12
✎
09:12
|
(14) ясно, спасибо. с C# незнаком
|
|||
17
andrewks
01.02.12
✎
09:13
|
sizeof(ULONG)=4
sizeof(DWORD)=4 |
|||
18
skunk
01.02.12
✎
09:14
|
я бы сказал что ulong это два dword ... юлонг - 64 бита ... диворд - 32
|
|||
19
smaharbA
01.02.12
✎
09:28
|
лонг не меняется от разрядности, дворд зависит впрямую (в оригинале)
|
|||
20
aleks-id
01.02.12
✎
09:28
|
уже само название - ulong = unsigned long беззнаковый лонг
то же самое ushort |
|||
21
andrewks
01.02.12
✎
09:29
|
(19) может, наоборот?
|
|||
22
smaharbA
01.02.12
✎
09:29
|
но в оригинале и инт неизменен, теперь он так же отличается сам от себя
|
|||
23
smaharbA
01.02.12
✎
09:30
|
(21) неа, ворд это машинное слово изначально, а лонг выдуманный тип
|
|||
24
smaharbA
01.02.12
✎
09:31
|
теперь кто как хочет тот так и лепит
|
|||
25
Steel_Wheel
01.02.12
✎
09:32
|
(2) Слово от разрядности то-ли процессора то-ли шины (уже не вспомню)зависит. И равно разрядности ОС. int -- обычно слово, long -- 2 слова. Ulong -- беззнаковый long, скорее всего DWORD -- это псевдоним ulong
|
|||
26
Steel_Wheel
01.02.12
✎
09:33
|
(19) +1
(3) О, я так и писал )) |
|||
27
skunk
01.02.12
✎
10:46
|
dword - это doble word ... или два слова
word - это два byte ... byte - это 8 бит ... никаким боком разрядность шины, процессора или оси на данные типы не влияет ... ulong - это 64 бита ... dword - 32 бита ... везде и всегда |
|||
28
smaharbA
01.02.12
✎
14:29
|
(27) не всегда
|
|||
29
Кириллка
01.02.12
✎
14:32
|
(28)например?
|
|||
30
smaharbA
01.02.12
✎
14:33
|
(29) что например, к случаю байт бывает и 4 и 6 и8 и 10 и даже 12 бит
|
|||
31
skunk
01.02.12
✎
14:34
|
(30)это когда?
|
|||
32
Кириллка
01.02.12
✎
14:35
|
(30)глобально так зачем? Явно автор win-specific интересна.
|
|||
33
Ненавижу 1С
гуру
01.02.12
✎
14:40
|
(31) в си++ вполне может быть (17), и даже (3)
|
|||
34
smaharbA
01.02.12
✎
14:41
|
(32) тогда тоже х.з. где и как это будет, изначально слово это 16 бит, даже в 8-и битных процессорах, теперь
http://msdn.microsoft.com/ru-ru/library/6ykwckb8.aspx http://msdn.microsoft.com/en-us/library/cc230318(v=prot.10).aspx и еще куча |
|||
35
Кириллка
01.02.12
✎
14:55
|
(34)что-то ты не туда полез. Вот давай так: http://msdn.microsoft.com/ru-ru/library/s3f49ktz.aspx
|
|||
36
oleg_km
01.02.12
✎
15:02
|
Все очень просто: ULONG - это платформонезависимый тип, DWORD - платформозависимый тип. Типа если пишешь кроссплатформенное приложение используй ulong, если пишешь под конкретную реализацию процессор/ОС используй DWORD. На мой взгляд та мысль не взлетела, т.к. например в WinApi все перемешано ULONG, DWORD, поэтому можно наплевать и использовать что удобнее
|
|||
37
DGorgoN
01.02.12
✎
15:02
|
Я тоже подтверждаю разность байта на разных системах. В свое время даже были проблемы из-за этого на КАМАЗ-зе
|
|||
38
DGorgoN
01.02.12
✎
15:03
|
ЗЫ - Раньше считалось что бит не делим, но российские ученые..
|
|||
39
skunk
01.02.12
✎
15:08
|
(34)и что в этих ссылках ... в одной дворд равен 4 байтам ... в другой 32 битам ... 32/4 = 8 ... вроде как получается
(37)вот только не надо сейчас петь за древнию эвм стоящую в музее ит-департамента камаза и использующую 7 битные слова |
|||
40
DGorgoN
01.02.12
✎
15:13
|
(39) Относительно древняя да. Она до сих пор там работает. Пережила туеву хучу внедренцев. На КАМАЗе уже есть сап, аксапта, оракл, УППырище и БП переписанная каким то Московским франчем непонятно для каких целей. А старенькая IBM там с какой то древней прогой и утилитой пашет до сих пор. Но саге не совсем про неё. Там еще микроконтроллеры есть - так вот там как раз размерность другая и 1 таки хитрый прог на ней попался - он любил различные оптимизированные алгоритмы делать и заоптимизаровался на несколько сотен тысяч (тогда это были оооочень большие деньги). Хотя это вполне возможно была байка однако я такие контроллеры встречал..
|
|||
41
skunk
01.02.12
✎
15:14
|
(40)в ибм всегда было 8 бит = 1 байт ... это в наших бестах где-то пытались наперекор буржуинам байт из 7 бит сделать
|
|||
42
DGorgoN
01.02.12
✎
15:20
|
(41) В ИБМ да - я про МК, всего скорее наши..
|
|||
43
skunk
01.02.12
✎
15:35
|
(42)такая что-ли? wiki:Минск-32
|
|||
44
DGorgoN
01.02.12
✎
16:01
|
(43) Я не встречал названий.
Кстати до сих пор где то валяется пучок посеребренных проводов от какого то блока ЭВМ. В свое время на кружок попал этот блок. Мы когда его открыли - он весь блестел от золота. Через день от золота не осталось и следа.. |
|||
45
G-Re
01.02.12
✎
16:02
|
На Минск-32 даже успел немного поработать. ЯСК(Ассемблер в будущем) - вещь, а КОБОЛ - круто. Бобины с лентами крутились взад-вперед не переставая(при трансляции текста), перфокарты с множеством дырок... которые умудрялись читать глазами...
|
|||
46
Torquader
01.02.12
✎
23:47
|
Файл wtypes.h
Имеет такую строчку: typedef DWORD ULONG; так что они, на самом деле, не отличаются ни чем. Только если включить строгое приведение типов, то система будет различать использование DWORD и ULONG для каких-то внутренних нужд. А 64бита - это int64 на самом деле или QWORD. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |