C51二进制数输入宏
在C语言中有十进制,十六进制,八进制;没有二进制的定义,在C51中使用十六进制表示有时不太直观,下面介绍几种方法表示二进制[均来自网络]
方法一
#define _BIN(a,b,c,d,e,f,g,h) ((a<<7)+(b<<6)+(c<<5)+(d<<4)+(e<<3)+(f<<2)+(g<<1)+(h<<0))
#define _bin _BIN // _bin,_BIN均可
Example:
i = _bin(1,1,1,1, 0,0,0,0); // i=0xF0
i = _bin(1,0,1,0, 1,0,0,1); // i=0xA9
方法二
#define LongToBin(n) (((n>>21)&0x80)|((n>>18)&0x40)|((n>>15)&0x20)|((n>>12)&0x10)|((n>>9)&0x08)|((n>>6)&0x04)|((n>>3)&0x02)|((n)&0x01))
#define bin(n) LongToBin(0x##n##l)
在实际应用中:比如要用置P1为0x0f 可以这样写:P1=bin(00001111);//then P1=0X0f
方法三
1 /*------------binary.h----------------*/
2
3 #define B00000000 0x00
4 #define B00000001 0x01
5 #define B00000010 0x02
6 #define B00000011 0x03
7 #define B00000100 0x04
8 #define B00000101 0x05
9 #define B00000110 0x06
10 #define B00000111 0x07
11 #define B00001000 0x08
12 #define B00001001 0x09
13 #define B00001010 0x0A
14 #define B00001011 0x0B
15 #define B00001100 0x0C
16 #define B00001101 0x0D
17 #define B00001110 0x0E
18 #define B00001111 0x0F
19
20 #define B00010000 0x10
21 #define B00010001 0x11
22 #define B00010010 0x12
23 #define B00010011 0x13
24 #define B00010100 0x14
25 #define B00010101 0x15
26 #define B00010110 0x16
27 #define B00010111 0x17
28 #define B00011000 0x18
29 #define B00011001 0x19
30 #define B00011010 0x1A
31 #define B00011011 0x1B
32 #define B00011100 0x1C
33 #define B00011101 0x1D
34 #define B00011110 0x1E
35 #define B00011111 0x1F
36
37 #define B00100000 0x20
38 #define B00100001 0x21
39 #define B00100010 0x22
40 #define B00100011 0x23
41 #define B00100100 0x24
42 #define B00100101 0x25
43 #define B00100110 0x26
44 #define B00100111 0x27
45 #define B00101000 0x28
46 #define B00101001 0x29
47 #define B00101010 0x2A
48 #define B00101011 0x2B
49 #define B00101100 0x2C
50 #define B00101101 0x2D
51 #define B00101110 0x2E
52 #define B00101111 0x2F
53
54 #define B00110000 0x30
55 #define B00110001 0x31
56 #define B00110010 0x32
57 #define B00110011 0x33
58 #define B00110100 0x34
59 #define B00110101 0x35
60 #define B00110110 0x36
61 #define B00110111 0x37
62 #define B00111000 0x38
63 #define B00111001 0x39
64 #define B00111010 0x3A
65 #define B00111011 0x3B
66 #define B00111100 0x3C
67 #define B00111101 0x3D
68 #define B00111110 0x3E
69 #define B00111111 0x3F
70
71 #define B01000000 0x40
72 #define B01000001 0x41
73 #define B01000010 0x42
74 #define B01000011 0x43
75 #define B01000100 0x44
76 #define B01000101 0x45
77 #define B01000110 0x46
78 #define B01000111 0x47
79 #define B01001000 0x48
80 #define B01001001 0x49
81 #define B01001010 0x4A
82 #define B01001011 0x4B
83 #define B01001100 0x4C
84 #define B01001101 0x4D
85 #define B01001110 0x4E
86 #define B01001111 0x4F
87
88 #define B01010000 0x50
89 #define B01010001 0x51
90 #define B01010010 0x52
91 #define B01010011 0x53
92 #define B01010100 0x54
93 #define B01010101 0x55
94 #define B01010110 0x56
95 #define B01010111 0x57
96 #define B01011000 0x58
97 #define B01011001 0x59
98 #define B01011010 0x5A
99 #define B01011011 0x5B
100 #define B01011100 0x5C
101 #define B01011101 0x5D
102 #define B01011110 0x5E
103 #define B01011111 0x5F
104
105 #define B01100000 0x60
106 #define B01100001 0x61
107 #define B01100010 0x62
108 #define B01100011 0x63
109 #define B01100100 0x64
110 #define B01100101 0x65
111 #define B01100110 0x66
112 #define B01100111 0x67
113 #define B01101000 0x68
114 #define B01101001 0x69
115 #define B01101010 0x6A
116 #define B01101011 0x6B
117 #define B01101100 0x6C
118 #define B01101101 0x6D
119 #define B01101110 0x6E
120 #define B01101111 0x6F
121
122 #define B01110000 0x70
123 #define B01110001 0x71
124 #define B01110010 0x72
125 #define B01110011 0x73
126 #define B01110100 0x74
127 #define B01110101 0x75
128 #define B01110110 0x76
129 #define B01110111 0x77
130 #define B01111000 0x78
131 #define B01111001 0x79
132 #define B01111010 0x7A
133 #define B01111011 0x7B
134 #define B01111100 0x7C
135 #define B01111101 0x7D
136 #define B01111110 0x7E
137 #define B01111111 0x7F
138
139 #define B10000000 0x80
140 #define B10000001 0x81
141 #define B10000010 0x82
142 #define B10000011 0x83
143 #define B10000100 0x84
144 #define B10000101 0x85
145 #define B10000110 0x86
146 #define B10000111 0x87
147 #define B10001000 0x88
148 #define B10001001 0x89
149 #define B10001010 0x8A
150 #define B10001011 0x8B
151 #define B10001100 0x8C
152 #define B10001101 0x8D
153 #define B10001110 0x8E
154 #define B10001111 0x8F
155
156 #define B10010000 0x90
157 #define B10010001 0x91
158 #define B10010010 0x92
159 #define B10010011 0x93
160 #define B10010100 0x94
161 #define B10010101 0x95
162 #define B10010110 0x96
163 #define B10010111 0x97
164 #define B10011000 0x98
165 #define B10011001 0x99
166 #define B10011010 0x9A
167 #define B10011011 0x9B
168 #define B10011100 0x9C
169 #define B10011101 0x9D
170 #define B10011110 0x9E
171 #define B10011111 0x9F
172
173 #define B10100000 0xA0
174 #define B10100001 0xA1
175 #define B10100010 0xA2
176 #define B10100011 0xA3
177 #define B10100100 0xA4
178 #define B10100101 0xA5
179 #define B10100110 0xA6
180 #define B10100111 0xA7
181 #define B10101000 0xA8
182 #define B10101001 0xA9
183 #define B10101010 0xAA
184 #define B10101011 0xAB
185 #define B10101100 0xAC
186 #define B10101101 0xAD
187 #define B10101110 0xAE
188 #define B10101111 0xAF
189
190 #define B10110000 0xB0
191 #define B10110001 0xB1
192 #define B10110010 0xB2
193 #define B10110011 0xB3
194 #define B10110100 0xB4
195 #define B10110101 0xB5
196 #define B10110110 0xB6
197 #define B10110111 0xB7
198 #define B10111000 0xB8
199 #define B10111001 0xB9
200 #define B10111010 0xBA
201 #define B10111011 0xBB
202 #define B10111100 0xBC
203 #define B10111101 0xBD
204 #define B10111110 0xBE
205 #define B10111111 0xBF
206
207 #define B11000000 0xC0
208 #define B11000001 0xC1
209 #define B11000010 0xC2
210 #define B11000011 0xC3
211 #define B11000100 0xC4
212 #define B11000101 0xC5
213 #define B11000110 0xC6
214 #define B11000111 0xC7
215 #define B11001000 0xC8
216 #define B11001001 0xC9
217 #define B11001010 0xCA
218 #define B11001011 0xCB
219 #define B11001100 0xCC
220 #define B11001101 0xCD
221 #define B11001110 0xCE
222 #define B11001111 0xCF
223
224 #define B11010000 0xD0
225 #define B11010001 0xD1
226 #define B11010010 0xD2
227 #define B11010011 0xD3
228 #define B11010100 0xD4
229 #define B11010101 0xD5
230 #define B11010110 0xD6
231 #define B11010111 0xD7
232 #define B11011000 0xD8
233 #define B11011001 0xD9
234 #define B11011010 0xDA
235 #define B11011011 0xDB
236 #define B11011100 0xDC
237 #define B11011101 0xDD
238 #define B11011110 0xDE
239 #define B11011111 0xDF
240
241 #define B11100000 0xE0
242 #define B11100001 0xE1
243 #define B11100010 0xE2
244 #define B11100011 0xE3
245 #define B11100100 0xE4
246 #define B11100101 0xE5
247 #define B11100110 0xE6
248 #define B11100111 0xE7
249 #define B11101000 0xE8
250 #define B11101001 0xE9
251 #define B11101010 0xEA
252 #define B11101011 0xEB
253 #define B11101100 0xEC
254 #define B11101101 0xED
255 #define B11101110 0xEE
256 #define B11101111 0xEF
257
258 #define B11110000 0xF0
259 #define B11110001 0xF1
260 #define B11110010 0xF2
261 #define B11110011 0xF3
262 #define B11110100 0xF4
263 #define B11110101 0xF5
264 #define B11110110 0xF6
265 #define B11110111 0xF7
266 #define B11111000 0xF8
267 #define B11111001 0xF9
268 #define B11111010 0xFA
269 #define B11111011 0xFB
270 #define B11111100 0xFC
271 #define B11111101 0xFD
272 #define B11111110 0xFE
273 #define B11111111 0xFF
274
275 /*----End----*/
C51二进制数输入宏的更多相关文章
- Keil 二进制数输入宏
源:http://hi.baidu.com/skystalker/item/e7679cd79c6f751220e250c1?qq-pf-to=pcqq.c2c 在C语言中有十进制,十六进制,八进制; ...
- C#调用Excel VBA宏
近日的一系列工作是做网站的营运维护,因此做了大量的支持工具.有Excel中写VBA的,也有直接C#做的工具.有时需要在C#中执行Excel VBA宏,甚至有时还需要在执行了VBA宏之后,获取返回值再进 ...
- Confluence 6 创建一个用户宏
如果你想创建自定义的宏的话,用户宏能够帮你完成这个任务.这个可以在你系统中应用特定的操作,比如说应用自定义格式等. 用户用是在 Confluence 创建和和管理的,你需要有一定的编码基础才可以. 你 ...
- C#调用Excel VBA宏[转载]
原文地址:https://www.cnblogs.com/heekui/archive/2008/03/30/1129355.html 近日的一系列工作是做网站的营运维护,因此做了大量的支持工具.有E ...
- VBA与宏
VBA与宏 ====== 刚开始的内容听起来很枯燥,请大家不要分心,耐着性子看下去,兴趣总是慢慢积累的. ----------------------------------------------- ...
- Word中高效输入公式:内嵌公式和Mathtype
Word中高效输入公式:内嵌公式和Mathtype 前言:对于理工科学生而言,公式输入必不可缺.LaTeX相比Word,在公式输入及排版方面更强大.但是对于轻量级的任务,用Word而言更加轻便(起码不 ...
- 2014.8.27 Vs2005宏的使用
终于知道怎么像在Word里那样使用宏了! 1.vs2005必须装补丁1 2.在C:\Program Files (x86)\Common Files\microsoft shared\VSA\8.0\ ...
- 利用word宏功能一键导出数据库表结构
前言: 需求是: 为了完成<数据库设计文档>中的表结构展示,需要导出所有的表结构,包括字段名.长度.注释等必要标题. 数据库:MySQL 我选择的方法是——用word的宏功能导出.很多博客 ...
- 第8章 自己写库-构建库函数雏形—零死角玩转STM32-F429系列
第8章 自己写库—构建库函数雏形 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fi ...
- Excel—“撤销工作表保护密码”的破解并获取原始密码
您是否遇到过这样的情况:您用Excel编制的报表.表格.程序等,在单元格中设置了公式.函数等,为了防止其他人修改您的设置或者防止您自己无意中修改,您可能会使用Excel的工作表保护功能,但时间久了保护 ...
随机推荐
- 树莓派获取唯一ID
树莓派的CPU有序列号,可以通过读取 /proc/cpuinfo 获取 储存的UUID,可以通过 ls /dev/disk/by-uuid或blkid
- sort算法的使用
sort算法的使用 望文生义,sort是STL内置的一个排序算法,其底层是由多个排序算法的配合的使用. 需要包含的头文件 #include<algorithm> 使用 sort(参数1,参 ...
- 实用干货分享 - Oracle数据库RPM部署指南
下载依赖和Oracle19c版本的RPM包 http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-dat ...
- 我用cursor, 半就开发了一个手机壁纸小程序,真的太强了
前言 我用chatGPT帮我写后端爬虫,分析知乎html代码,爬取知乎壁纸.然后用cursor AI工具,完全使我一个不懂前端uniapp框架的人,开发了一个小程序手机壁纸页面. 原来一周的工作量,半 ...
- IDE提交Git出现husky>pre-commit错误
若使用IDE提交Git出现以下错误: 则是ES6在提交校验过程中出现了问题,强制提交方式为: 命令行: git commit --no-verify IDEA: 在提交时取消勾选Run Git hoo ...
- Spring boot 2.0 之优雅停机
spring boot 框架在生产环境使用的有一段时间了,它"约定大于配置"的特性,体现了优雅流畅的开发过程,它的部署启动方式(java -jar xxx.jar)也很优雅.但是我 ...
- Mockito入门:如何在Spring中Mock部分对象
前情提要 随着分布式应用的开发逐渐成为标配,多个微服务团队合作来完成垂直业务的开发成为了一种常态.微服务使得团队可以专注于自己的业务逻辑,在和下游依赖和上游对接的团队聚焦好接口之后,就进入正式的开发. ...
- 哪里有 class 告诉我?
说明 本文中的 JVM 参数和代码在 JDK 8 版本生效. 哪里有用户类? 用户类是由开发者和第三方定义的类,它是由应用程序类加载器加载的. Java 程序可以通过CLASSPATH 环境变量,JV ...
- vue 控件的淡入淡出
页面代码. 1.首先要用transition 包裹一下,设置name或者不设置都可以,其次transition 下面要有一个div设置v-if来触发移入移出 <transition name=& ...
- [转]VS2019生成项目文件.lib或.dll或exe后如何拷贝到指定的目录文件夹
VS2019编译CloudCompare,发现生成的项目文件都是分开的,每个项目下都有自己的文件夹Debug/Release,生成Dll都放在这些单独的项目文件夹内. 目标 (1)通常,我们要求所有的 ...