From 3e502bfe3df65f64a592e86354a82882eca1f83a Mon Sep 17 00:00:00 2001 From: wes Date: Wed, 5 Jul 2017 12:49:30 -0400 Subject: [PATCH] add set and clear functions --- .bfilter.c.swp | Bin 12288 -> 0 bytes .bfilter.h.swp | Bin 12288 -> 0 bytes .gitignore | 1 + bfilter.c | 19 +++++++++++++++++++ bfilter.h | 1 + 5 files changed, 21 insertions(+) delete mode 100644 .bfilter.c.swp delete mode 100644 .bfilter.h.swp diff --git a/.bfilter.c.swp b/.bfilter.c.swp deleted file mode 100644 index cefa3fc2c552c7bb628c22d428b3486bb1b92e25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI2O=w(I6vuB|h(%*dU06i%IHm2InS4yrDuqm@lv1P%D>R88w57axb0>4j%YEU! zJ5H-cY1iGmlWw}OEmY`21WVm1v?4D305>iaQCw9-6#wVWo5@TPjL=o^4E%WSo_oIT z|K2+!B=yQGCtjk%6BUKeE~QrgJoEZ*-`7WKPb$^X8C$pfWG+mXw)9f!9VDErH%;tx z+Ivn!{~=IZL;+FY!4zn_=J?^!g@e;m{;KaSJV#ILUU;ya5-kdd0-}H@APR^AqJStM z3Wx&RN&&YrqTWTv59M8-%AX_ap7~H7qJStM3Wx%tfG8jehytR3C?E=m0-}H@uniRm z8%kZ@q14Vt(LDbC-~0Xl*PTjz13m+{z!h*AoCg}rgCn2@4uGe?!{D#SmHGqx41NMX zf*-(F;A3zDTmlz?1+RjW;3${{0eA%bGKzTcHMk4zfZN~`@DX?)B)|d;}7l*K`}6329jr5Cud5Q9u+B1w?`WlLD)XDAlf=S~~vPiTQJL3&)NfpPQS3 zc_lU0)s4#nr!#lDa<<6UOta0K#%Ow@>Ci^g3*LleRN_oDOICNzAxoI1;f3INOfQGV zQt(D%8bx|b!4*HXswmcB%Ed4)5uC?}lPnFm^qa5DC^QG3)8;G+GFba&1r{vGqinZ#1k^kcL^9Zj7O4ZsB|P-&7&wryq>t#0_% z@*-2dBKL|kD7r-Z=-_l-ZyuF4%MJm!366s1I&S6#yn&NUZk{5K^IG=0<(Q5>kZOvP zWXae?3Vpx%=3#m(J?lOnx6CJms5|b83$2NoNg5cmRhc0}Rm#kp8gJz?Zw_@=(O03= zjfVGf7{^Hz1ndrFd1s47D*136gQ0W5i(tQeyGwi|2KO61q*@2qnam$Be_oqG;fyW# zakufFbzh?}M(m3<_-QP_*GK#PRYU_z==zRN@o}=WpRlPtF)Y<;vt0w0IzG-bkjN)r z7tm>$SW|$AS=<(A16N*HiM{_tkjVGQp4?u<6?hQwAZh3K(!y!&mh!ya>~2Kmf!?EX znUk&c#Vc9cG%kSs^|ktS`kB>UW23m;&{W9(uYICb7%(n};jlrcX_5|^s$rJt)J?Q% mYjM@g;k#yW*cQ19D|*x;#*my?s#NblFG4Ru@1TQM z;N%UsJBjZpEvQR{PL=n-o73~1pM(c8godT+&aRe=B|)1O>3kj?ZoP%x_MAx5WUe}} zWj07p2d)yi!GUXGBRaDt?f1o#KWyX@3Q%A;f!sD$%M-G>vEF^v7Z>Jrc4lw5Gr5}r z6rcbFC_n)UP=Epy7%2gpcyfy;9_u~zWUu#r^}QiG3Q&Lo6rcbFC_n)UP=Epypa2C% zP#~y_j8BOiBkuqI{`da}#_z~0@`7}bXXFWaL>`cPSi+fb1hxgpC3epa2CZ zKmiI+fC3bt00k)UzXc++*hVofni(5Lb_qWVD~juKMa0z$v1$643DPuZx#|8yl45{~ z?0d0xk^d~JVu|0~?AwZ{wh?tV&;qKiqMAil#h=b`DAGMnZ#tJh*%iK&~0d;!9V BThIUi diff --git a/.gitignore b/.gitignore index 9daeafb..05debe1 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ test +*swp diff --git a/bfilter.c b/bfilter.c index 85f9661..308e7bc 100644 --- a/bfilter.c +++ b/bfilter.c @@ -40,6 +40,7 @@ printbits(int n) { int* new_bitarray(int size) { int *barray = malloc((sizeof (int)) * size); + int i; for(i = 0; i < size; i++) { barray[i] = 0; @@ -65,12 +66,30 @@ setbit(int* arr, int k) { return 0; } +int +unsetbit(int* arr, int k) { + int i = k/32; + + int pos = k % 32; + + unsigned int flag = 1; + + flag = ~(flag << pos); + + arr[i] = arr[i] & flag; + + return 0; +} + int main (void) { int *test = new_bitarray(5); setbit(test, 6); setbit(test, 4); setbit(test, 2); + unsetbit(test, 6); + unsetbit(test, 4); + unsetbit(test, 2); printbits(test[0]); return EXIT_SUCCESS; } diff --git a/bfilter.h b/bfilter.h index a244beb..2b1880b 100644 --- a/bfilter.h +++ b/bfilter.h @@ -12,3 +12,4 @@ int printbits(int); int *new_bitarray(int); int setbit(int*, int); +int unsetbit(int*, int);