0xFFFF用简洁的方式替代

yjh404537424 2010-10-23 04:21:16
在非16位机上,用什么替代 unsigned int a = 0xFFFF ???
谢谢大牛的 回答……
...全文
338 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
tingting5278910 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
#include<limits.h>

unsigned int a=UINT_MAX;
[/Quote]
是什么意思?
zhutianjin4355255 2010-10-25
  • 打赏
  • 举报
回复
[Quote=引用楼主 yjh404537424 的回复:]
在非16位机上,用什么替代 unsigned int a = 0xFFFF ???
谢谢大牛的 回答……
[/Quote]

a = ~0
purewqk 2010-10-25
  • 打赏
  • 举报
回复
那就直接~0...
2010-10-24
  • 打赏
  • 举报
回复
不知所云……
楼主到底要拿 0xFFFF 来干什么?
是要一个固定的 16 位的全 1,还是要根据系统数据类型的长度选择不同长度的全 1?
yjh404537424 2010-10-24
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 songwanqiang 的回复:]

C99中有个<stdint.h>头文件,其中定义了挺多种类型的整型。
在支持C99编译器上可以使用uint16_t类型。
#include <stdint.h>
uint16_t b = ~0;
unsigned int a = b;
这样的话不同宽度类型会有自动隐式扩展,当然在编译器可信的前提下。
[/Quote]谢谢 不过我的linux里 没又man道这个头文件阿?
yjh404537424 2010-10-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 samueltian 的回复:]

unsigned int a= ~0
[/Quote]我写的也是 这个。这个可以方便移植嘛??谢谢
yjh404537424 2010-10-24
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 athenacle_ 的回复:]

引用 7 楼 samueltian 的回复:

引用 6 楼 athenacle_ 的回复:
引用 5 楼 samueltian 的回复:

unsigned int a= ~0

如果用了32位的机器,~0不是成了unsigned int a = 0xffffffff ?


我不太明白你的意思,在非十六位的系统里面的unsigned int 有可能不是16位是32位啊。你……
[/Quote]
就是对那种 可以方便移植的 不要固定的,我写的是
unsigned int a= ~0 不知道对不对?????非16位机 机器位数不固定。。
songwanqiang 2010-10-24
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 yjh404537424 的回复:]
引用 9 楼 songwanqiang 的回复:

C99中有个<stdint.h>头文件,其中定义了挺多种类型的整型。
在支持C99编译器上可以使用uint16_t类型。
#include <stdint.h>
uint16_t b = ~0;
unsigned int a = b;
这样的话不同宽度类型会有自动隐式扩展,当然在编译器可信的前提下。
谢谢 不过我的linux里 没……
[/Quote]
有的,我现在用的还是GCC3.4.5,这版本就有。最新版本的应该更会有的。
<stdint.h>就在include目录里面。
ForestDB 2010-10-24
  • 打赏
  • 举报
回复
unsigned int = -1;
songwanqiang 2010-10-23
  • 打赏
  • 举报
回复
C99中有个<stdint.h>头文件,其中定义了挺多种类型的整型。
在支持C99编译器上可以使用uint16_t类型。
#include <stdint.h>
uint16_t b = ~0;
unsigned int a = b;
这样的话不同宽度类型会有自动隐式扩展,当然在编译器可信的前提下。
Athenacle_ 2010-10-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 samueltian 的回复:]

引用 6 楼 athenacle_ 的回复:
引用 5 楼 samueltian 的回复:

unsigned int a= ~0

如果用了32位的机器,~0不是成了unsigned int a = 0xffffffff ?


我不太明白你的意思,在非十六位的系统里面的unsigned int 有可能不是16位是32位啊。你到底想要赋一个怎么样的值呢?
[/Quote]
额。。这个。。我也不知道。。。问LZ去~我就是看LZ只要0xffff而不是0xffffffff。。。。
samueltian 2010-10-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 athenacle_ 的回复:]
引用 5 楼 samueltian 的回复:

unsigned int a= ~0

如果用了32位的机器,~0不是成了unsigned int a = 0xffffffff ?
[/Quote]

我不太明白你的意思,在非十六位的系统里面的unsigned int 有可能不是16位是32位啊。你到底想要赋一个怎么样的值呢?
Athenacle_ 2010-10-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 samueltian 的回复:]

unsigned int a= ~0
[/Quote]
如果用了32位的机器,~0不是成了unsigned int a = 0xffffffff ?
samueltian 2010-10-23
  • 打赏
  • 举报
回复
unsigned int a= ~0
Athenacle_ 2010-10-23
  • 打赏
  • 举报
回复
int a=0xffffu
do__i 2010-10-23
  • 打赏
  • 举报
回复
#include<limits.h>

unsigned int a=UINT_MAX;
selooloo 2010-10-23
  • 打赏
  • 举报
回复
65535?
千杯不醉-sen 2010-10-23
  • 打赏
  • 举报
回复
不清楚,非16位,32位?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧