OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32/FPGA开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...
查看: 1405|回复: 19

一个30位的二进制数要怎样定义

[复制链接]

  离线 

11

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2017-7-12
在线时间
46 小时
发表于 2017-8-9 10:10:57 | 显示全部楼层 |阅读模式
如题,例如101010101010101010101011010101,这个数据在c语言中要怎样定义,后面的程序中还要进行位运算,跪求高手解答
回复

使用道具 举报

  离线 

11

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2017-7-12
在线时间
46 小时
 楼主| 发表于 2017-8-9 10:18:36 | 显示全部楼层
有大神路过吗
回复 支持 反对

使用道具 举报

  离线 

16

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1279
金钱
1279
注册时间
2014-12-20
在线时间
530 小时
发表于 2017-8-9 11:15:15 | 显示全部楼层
long int 或 unsigned long int
回复 支持 反对

使用道具 举报

  离线 

5

主题

627

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2562
金钱
2562
注册时间
2013-7-30
在线时间
487 小时
发表于 2017-8-9 11:30:01 | 显示全部楼层
unsigned int
思想很重要,无论做人还是编程!
回复 支持 反对

使用道具 举报

  离线 

11

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2017-7-12
在线时间
46 小时
 楼主| 发表于 2017-8-9 11:34:17 | 显示全部楼层
BMN李 发表于 2017-8-9 11:15
long int 或 unsigned long int

程序报错啊
main.c(167): error:  #23: integer constant is too large
        long int word=101010100110101001010101010101;
回复 支持 反对

使用道具 举报

  离线 

11

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2017-7-12
在线时间
46 小时
 楼主| 发表于 2017-8-9 11:35:00 | 显示全部楼层

会报错
main.c(167): error:  #23: integer constant is too large
        unsigned int word=101010100110101001010101010101;
回复 支持 反对

使用道具 举报

  离线 

2

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2016-12-8
在线时间
153 小时
发表于 2017-8-9 11:41:40 来自手机 | 显示全部楼层
为何一定要用30位呢?用32位不行?
来自: 微社区
回复 支持 反对

使用道具 举报

  离线 

16

主题

345

帖子

0

精华

高级会员

Rank: 4

积分
750
金钱
750
注册时间
2017-5-21
在线时间
331 小时
发表于 2017-8-9 11:43:51 来自手机 | 显示全部楼层
定义32位,有两位可以不使用
回复 支持 反对

使用道具 举报

  离线 

16

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1279
金钱
1279
注册时间
2014-12-20
在线时间
530 小时
发表于 2017-8-9 11:50:46 | 显示全部楼层
wxavuqvm5m 发表于 2017-8-9 11:34
程序报错啊
main.c(167): error:  #23: integer constant is too large
        long int word=1010101 ...

厉害了!!!
long int word = 714773845;
QQ截图20170809115000.jpg


回复 支持 反对

使用道具 举报

  离线 

5

主题

627

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2562
金钱
2562
注册时间
2013-7-30
在线时间
487 小时
发表于 2017-8-9 13:42:11 | 显示全部楼层
好好学习C语言
思想很重要,无论做人还是编程!
回复 支持 反对

使用道具 举报

  离线 

10

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2017-7-22
在线时间
22 小时
发表于 2017-8-11 18:53:35 | 显示全部楼层
这位大哥需要好好学习C中各种进制的表示方法
回复 支持 反对

使用道具 举报

  离线 

0

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2017-7-8
在线时间
23 小时
发表于 2017-8-15 00:30:50 来自手机 | 显示全部楼层
wxavuqvm5m 发表于 2017-8-9 11:34
程序报错啊
main.c(167): error:  #23: integer constant is too large
        long int word=1010101 ...

你这样 赋值,你知道你这个数有好大吗?改成8进制全面加0 或16进制前面加0x吧
回复 支持 反对

使用道具 举报

  离线 

4

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2017-8-15
在线时间
11 小时
发表于 2017-8-15 20:16:46 | 显示全部楼层
不是特别理解楼主的意思,因为我没有在书上看到过用二进制的形式赋值操作的。即便是后边要进行位运算,也可以直接按以下定义 unsigned int  a = 0x2AAAAAD5; 后边进行位运算,比如把第12位清零,可以采用语句a &= 0xFFFFFEFFF完成
回复 支持 反对

使用道具 举报

  离线 

8

主题

553

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1577
金钱
1577
注册时间
2015-8-25
在线时间
298 小时
发表于 2017-10-2 08:55:32 | 显示全部楼层
unsigned int word=101010100110101001010101010101;这是定义成了10进制数了好吧,先转成16进制或者10进制。
如果非得一定要用30位的二进制数,不用32位的,那你还是定义位段来用吧
回复 支持 反对

使用道具 举报

  离线 

87

主题

331

帖子

0

精华

高级会员

Rank: 4

积分
906
金钱
906
注册时间
2016-3-26
在线时间
116 小时
发表于 2017-10-5 11:54:42 | 显示全部楼层
没有三十位的数给你定义,你可以定义32位的用前30位
回复 支持 反对

使用道具 举报

  离线 

2

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2017-8-4
在线时间
3 小时
发表于 2018-2-1 15:56:45 | 显示全部楼层
wxavuqvm5m 发表于 2017-8-9 11:35
会报错
main.c(167): error:  #23: integer constant is too large
        unsigned int word=1010101 ...

不能这么定义,这样定义后边的一串数字默认是十进制的,要把这个二进制数换成十进制或十六进制定义
回复 支持 反对

使用道具 举报

  离线 

23

主题

222

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1986
金钱
1986
注册时间
2012-8-25
在线时间
499 小时
发表于 2018-4-21 10:05:08 | 显示全部楼层
有的工具是前面加 0b 有的工具好像不行。不行就化成16进制吧
回复 支持 反对

使用道具 举报

  离线 

1

主题

9

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2018-8-3
在线时间
2 小时
发表于 2018-8-3 11:35:42 | 显示全部楼层
long a = 0B101010101010101010101011010101;
回复 支持 反对

使用道具 举报

头像被屏蔽

  离线 

7

主题

70

帖子

0

精华

禁止访问

积分
421
金钱
421
注册时间
2015-3-25
在线时间
122 小时
发表于 2018-8-3 11:43:05 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

  离线 

2

主题

211

帖子

0

精华

高级会员

Rank: 4

积分
693
金钱
693
注册时间
2013-6-5
在线时间
107 小时
发表于 2018-10-10 23:46:56 | 显示全部楼层
wxavuqvm5m 发表于 2017-8-9 11:34
程序报错啊
main.c(167): error:  #23: integer constant is too large
        long int word=1010101 ...

你转成16进制或10进制。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则




关闭

正点原子双11大促销上一条 /1 下一条

正点原子公众号

QQ|联系我们|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-11-16 11:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表
/* */