Имя: Пароль:
IT
 
Напомните, чем 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.
Основная теорема систематики: Новые системы плодят новые проблемы.