社区
C语言
帖子详情
(DWORD)-1等于多少?
wcg_jishuo1
2010-11-11 11:10:56
(DWORD)-1等于多少?等于FFFFFFFF
(BYTE)-1等于多少?等于FF
(DWORD)+1等于 1
那DWORD的值到底是多少啊?
...全文
985
20
打赏
收藏
(DWORD)-1等于多少?
(DWORD)-1等于多少?等于FFFFFFFF (BYTE)-1等于多少?等于FF (DWORD)+1等于 1 那DWORD的值到底是多少啊?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
半斗
2010-11-11
打赏
举报
回复
DWORD占4字节,一种类型而已
luciferisnotsatan
2010-11-11
打赏
举报
回复
0xFFFFFFFF
DWORD是类型。
(DWORD)-1这是把 -1 强转 DWORD
(DWORD)+1 这是把 +1(这里 + 代表 正号 )强转 DWORD
無_1024
2010-11-11
打赏
举报
回复
dword的值为0
xuwening
2010-11-11
打赏
举报
回复
[Quote=引用 1 楼 lightboat09 的回复:]
内存初始化应该是0
[/Quote]
恩~~~~~~~
0xFFFFFFFF的值就是-1
dword - 1 == -1
dword + 1 == 1
所以dword == 0
小楫轻舟
2010-11-11
打赏
举报
回复
内存初始化应该是0
wcg_jishuo1
2010-11-11
打赏
举报
回复
所以的计算机里存储或者运算的都是补码。
为什么要用补码呢,这个可以看计算机历史啦。
-1的补码是 反码加1 即FF FF FF FF.
bluesky12312388
2010-11-11
打赏
举报
回复
看它所表示的类型不同而不同。在32位64位机上是不同的。
本质上unsigned long = DWORD,也是就说不论你怎么赋值它也会是正数。
值为 右值 % ( 2*2(有DWORD位个2) + 1)
liups
2010-11-11
打赏
举报
回复
[Quote=引用 15 楼 wcg_jishuo1 的回复:]
typedef unsigned long DWORD;
DWORD是无符号说。-1 强制转换成无符号数后变成了FF FF FF FF
-1 用无符号数表示 为什么会是FF FF FF FF 呢?
DDWORD的范围 0 至(2^64-1)如果-1 怎么表示呢?如果是表示成 FF FF FF FF ,那为什么要这样表示呢?
[/Quote]
看一下补码,所有的补码中-1各位(含符号位)全部是1,所以(32位的二进制)表示成16进制就是 FF FF FF FF
luciferisnotsatan
2010-11-11
打赏
举报
回复
[Quote=引用 15 楼 wcg_jishuo1 的回复:]
typedef unsigned long DWORD;
DWORD是无符号说。-1 强制转换成无符号数后变成了FF FF FF FF
-1 用无符号数表示 为什么会是FF FF FF FF 呢?
DDWORD的范围 0 至(2^64-1)如果-1 怎么表示呢?如果是表示成 FF FF FF FF ,那为什么要这样表示呢?
[/Quote]
DDWORD就是 FF FF FF FF FF FF FF FF。
wcg_jishuo1
2010-11-11
打赏
举报
回复
typedef unsigned long DWORD;
DWORD是无符号说。-1 强制转换成无符号数后变成了FF FF FF FF
-1 用无符号数表示 为什么会是FF FF FF FF 呢?
DDWORD的范围 0 至(2^64-1)如果-1 怎么表示呢?如果是表示成 FF FF FF FF ,那为什么要这样表示呢?
dinjay
2010-11-11
打赏
举报
回复
[Quote=引用 13 楼 wcg_jishuo1 的回复:]
-1 在内存中是FF FF FF FF (有符号时) -1 为什么在计算机内存里表示是 FF FF FF FF FF?
[/Quote]
有符号当然要存储符号位了
wcg_jishuo1
2010-11-11
打赏
举报
回复
-1 在内存中是FF FF FF FF (有符号时) -1 为什么在计算机内存里表示是 FF FF FF FF FF?
zhutianjin4355255
2010-11-11
打赏
举报
回复
0xFFFFFFFF的值就是-1
dword - 1 == -1
dword + 1 == 1
dword == 0
lhy
2010-11-11
打赏
举报
回复
DWORD是类型不是常量。
pitchstar
2010-11-11
打赏
举报
回复
unsigned long 在32位平台上是 8 字节?
十八道胡同
2010-11-11
打赏
举报
回复
typedef unsigned long DWORD; 而unsigned long 的长度则是8个字节即64位,如果是在64位的操作系统中,这个长度可能会更长,这需要取决于当前操作系统以及开发环境等有关方面,具体可以参考相关的帮助说明!
是无符号类型。强制类型转换时按bit来转换。
-1 在内存中是FF FF FF FF (有符号时) ,所以强制类型转换成DWORD就是FF FF FF FF
gules
2010-11-11
打赏
举报
回复
参考《CSAPP》的第二章吧,就在这个论坛的置顶的帖子里。
gundamy
2010-11-11
打赏
举报
回复
可以看下反码、补码之类的知识,你就知道了
wcg_jishuo1
2010-11-11
打赏
举报
回复
(DWORD)-1这是把 -1 强转 DWORD
怎么算?
四字节对齐(D
WORD
-aligned)
系统:Windows8.1 64bit CS 这两天正好看到InitializeACL() msdn.microsoft.com/en-us/library/windows/desktop/aa378853(v=vs.85).aspx 其中nAclLength [in]要求". In addition, this value must be D
WORD
-aligned. For more i...
你真的理解了C语言++和--运算符么?
这个主题对于刚开始学习C语言时可能会觉得很简单啊,那好你告诉我下面几个题目的输出是什么,你要是能说对,并且说出为什么,那你就可以不用往下看了 int i = 0,j = 0; 1、j = (i++)+(i++)+(i++); //而不是j = i++i++i++; 2、j = (++i)+(++i)+(++i); //而不是j = ++i++i+...
C++ char[] 转 D
WORD
、D
WORD
- string 互转
char[] 转 D
WORD
// keyValue 为 char[] D
WORD
dw_keyValue = keyValue[0] | keyValue[1] << 8 | keyValue[2] << 16 | keyValue[3] << 24; D
WORD
- string 互转 // string 转 d
word
D
WORD
stringToDwo...
D
WORD
-aligned
系统:Windows8.1 64bit CS 这两天正好看到InitializeACL() msdn.microsoft.com/en-us/library/windows/desktop/aa378853(v=vs.85).aspx 其中nAclLength [in]要求". In addition, this value must be D
WORD
-aligned. For more
c语言中12.是什么意思,C语言中D
WORD
-12是什么意思
满意答案tlirlestxz推荐于 2016.09.08采纳率:45%等级:12已帮助:7404人c语言中D
WORD
就是 Double
Word
, 每个
word
为2个字节的长度,D
WORD
双字即为4个字节,每个字节是8位,共32位。D
WORD
-12就是以双字的形式表示-12的值。在Visual C++ 6.0中,BYTE与
WORD
,D
WORD
本质上都是一种无符号整型,它们在WINDEF...
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章