关于memset函数

今天突然发现memset的原理,如memset(p,0,sizeof(p)),这句话特别常见,讲所有的元素初始化为0,但是memset(p,1,sizeof(p)),却是将所有的元素初始化为16843009,以前也知道不能初始化为1,但是原因就不得而知了。那天研究别人代码,发现一句相当于是memset(p,243,sizeof(p))的语句,却是把整个数组赋值为-202116109,我十分不解。。本来想就算了的,但还是查一下百度。。。原来memset是将1个字节(8位数字)初始化为那个数,所以前面的问题都可以解释了,1的二进制是00000001,int有4个字节,所以初始化为所有的数初始化为00000001000000010000000100000001,也就是16843009。而243那个为什么出现负数呢?我顺便把在计算机中负数的表示方法又给复习一下,上课的时候根本就没注意。。一个数的二进制取反+1,就是这个数的负数,所以可以通过243,反推出那个数是-202116109,好神奇啊。。。而且244 242之类的都不如243小,CF上的大神这样 写是防别人CHA他吗。。。。以后可以这样初始化一个数组。

PS: 从0开始前255位。大于等于256的,会从1再开始循环回去,也就是取二进制的后8位。

0 0
1 16843009
2 33686018
3 50529027
4 67372036
5 84215045
6 101058054
7 117901063
8 134744072
9 151587081
10 168430090
11 185273099
12 202116108
13 218959117
14 235802126
15 252645135
16 269488144
17 286331153
18 303174162
19 320017171
20 336860180
21 353703189
22 370546198
23 387389207
24 404232216
25 421075225
26 437918234
27 454761243
28 471604252
29 488447261
30 505290270
31 522133279
32 538976288
33 555819297
34 572662306
35 589505315
36 606348324
37 623191333
38 640034342
39 656877351
40 673720360
41 690563369
42 707406378
43 724249387
44 741092396
45 757935405
46 774778414
47 791621423
48 808464432
49 825307441
50 842150450
51 858993459
52 875836468
53 892679477
54 909522486
55 926365495
56 943208504
57 960051513
58 976894522
59 993737531
60 1010580540
61 1027423549
62 1044266558
63 1061109567
64 1077952576
65 1094795585
66 1111638594
67 1128481603
68 1145324612
69 1162167621
70 1179010630
71 1195853639
72 1212696648
73 1229539657
74 1246382666
75 1263225675
76 1280068684
77 1296911693
78 1313754702
79 1330597711
80 1347440720
81 1364283729
82 1381126738
83 1397969747
84 1414812756
85 1431655765
86 1448498774
87 1465341783
88 1482184792
89 1499027801
90 1515870810
91 1532713819
92 1549556828
93 1566399837
94 1583242846
95 1600085855
96 1616928864
97 1633771873
98 1650614882
99 1667457891
100 1684300900
101 1701143909
102 1717986918
103 1734829927
104 1751672936
105 1768515945
106 1785358954
107 1802201963
108 1819044972
109 1835887981
110 1852730990
111 1869573999
112 1886417008
113 1903260017
114 1920103026
115 1936946035
116 1953789044
117 1970632053
118 1987475062
119 2004318071
120 2021161080
121 2038004089
122 2054847098
123 2071690107
124 2088533116
125 2105376125
126 2122219134
127 2139062143
128 -2139062144
129 -2122219135
130 -2105376126
131 -2088533117
132 -2071690108
133 -2054847099
134 -2038004090
135 -2021161081
136 -2004318072
137 -1987475063
138 -1970632054
139 -1953789045
140 -1936946036
141 -1920103027
142 -1903260018
143 -1886417009
144 -1869574000
145 -1852730991
146 -1835887982
147 -1819044973
148 -1802201964
149 -1785358955
150 -1768515946
151 -1751672937
152 -1734829928
153 -1717986919
154 -1701143910
155 -1684300901
156 -1667457892
157 -1650614883
158 -1633771874
159 -1616928865
160 -1600085856
161 -1583242847
162 -1566399838
163 -1549556829
164 -1532713820
165 -1515870811
166 -1499027802
167 -1482184793
168 -1465341784
169 -1448498775
170 -1431655766
171 -1414812757
172 -1397969748
173 -1381126739
174 -1364283730
175 -1347440721
176 -1330597712
177 -1313754703
178 -1296911694
179 -1280068685
180 -1263225676
181 -1246382667
182 -1229539658
183 -1212696649
184 -1195853640
185 -1179010631
186 -1162167622
187 -1145324613
188 -1128481604
189 -1111638595
190 -1094795586
191 -1077952577
192 -1061109568
193 -1044266559
194 -1027423550
195 -1010580541
196 -993737532
197 -976894523
198 -960051514
199 -943208505
200 -926365496
201 -909522487
202 -892679478
203 -875836469
204 -858993460
205 -842150451
206 -825307442
207 -808464433
208 -791621424
209 -774778415
210 -757935406
211 -741092397
212 -724249388
213 -707406379
214 -690563370
215 -673720361
216 -656877352
217 -640034343
218 -623191334
219 -606348325
220 -589505316
221 -572662307
222 -555819298
223 -538976289
224 -522133280
225 -505290271
226 -488447262
227 -471604253
228 -454761244
229 -437918235
230 -421075226
231 -404232217
232 -387389208
233 -370546199
234 -353703190
235 -336860181
236 -320017172
237 -303174163
238 -286331154
239 -269488145
240 -252645136
241 -235802127
242 -218959118
243 -202116109
244 -185273100
245 -168430091
246 -151587082
247 -134744073
248 -117901064
249 -101058055
250 -84215046
251 -67372037
252 -50529028
253 -33686019
254 -16843010
255 -1

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值