| [da36d25] | 1 | // | 
|---|
|  | 2 | // Cforall Version 1.0.0 Copyright (C) 2020 University of Waterloo | 
|---|
|  | 3 | // | 
|---|
|  | 4 | // The contents of this file are covered under the licence agreement in the | 
|---|
|  | 5 | // file "LICENCE" distributed with Cforall. | 
|---|
|  | 6 | // | 
|---|
|  | 7 | // bitmanip1.cfa<cfa-cc> -- | 
|---|
|  | 8 | // | 
|---|
|  | 9 | // Author           : Peter A. Buhr | 
|---|
|  | 10 | // Created On       : Tue Apr  7 21:20:29 2020 | 
|---|
|  | 11 | // Last Modified By : Peter A. Buhr | 
|---|
|  | 12 | // Last Modified On : Tue Apr  7 21:20:57 2020 | 
|---|
|  | 13 | // Update Count     : 1 | 
|---|
|  | 14 | // | 
|---|
|  | 15 |  | 
|---|
| [76bf23c] | 16 | #include <fstream.hfa> | 
|---|
|  | 17 | #include <bitmanip.hfa> | 
|---|
|  | 18 |  | 
|---|
|  | 19 | int main() { | 
|---|
|  | 20 | signed char sc; | 
|---|
|  | 21 | unsigned char usc; | 
|---|
|  | 22 | short int si; | 
|---|
|  | 23 | unsigned short int usi; | 
|---|
|  | 24 | int i; | 
|---|
|  | 25 | unsigned int ui; | 
|---|
|  | 26 | long int li; | 
|---|
|  | 27 | unsigned long int uli; | 
|---|
|  | 28 | long long int lli; | 
|---|
|  | 29 | unsigned long long int ulli; | 
|---|
|  | 30 |  | 
|---|
|  | 31 | //============================================================ | 
|---|
|  | 32 | #if 1 | 
|---|
|  | 33 | sout | "leading0s" | nl | nl; | 
|---|
|  | 34 |  | 
|---|
|  | 35 | sout | "signed char"; | 
|---|
|  | 36 | sc = 0; | 
|---|
|  | 37 | sout | wd(__bitsizeof(sc)+2, pad0(bin(sc))) | leading0s( sc ); | 
|---|
|  | 38 | for ( sc = 1; sc != 0; sc <<= 1 ) { | 
|---|
|  | 39 | sout | wd(__bitsizeof(sc)+2, pad0(bin(sc))) | leading0s( sc ); | 
|---|
|  | 40 | } // for | 
|---|
|  | 41 | sout | nl; | 
|---|
|  | 42 | sout | "unsigned char"; | 
|---|
|  | 43 | usc = 0; | 
|---|
|  | 44 | sout | wd(__bitsizeof(usc)+2, pad0(bin(usc))) | leading0s( usc ); | 
|---|
|  | 45 | for ( usc = 1; usc != 0; usc <<= 1 ) { | 
|---|
|  | 46 | sout | wd(__bitsizeof(usc)+2, pad0(bin(usc))) | leading0s( usc ); | 
|---|
|  | 47 | } // for | 
|---|
|  | 48 | sout | nl; | 
|---|
|  | 49 |  | 
|---|
|  | 50 | sout | "short int"; | 
|---|
|  | 51 | si = 0; | 
|---|
|  | 52 | sout | wd(__bitsizeof(si)+2, pad0(bin(si))) | leading0s( si ); | 
|---|
|  | 53 | for ( si = 1; si != 0; si <<= 1 ) { | 
|---|
|  | 54 | sout | wd(__bitsizeof(si)+2, pad0(bin(si))) | leading0s( si ); | 
|---|
|  | 55 | } // for | 
|---|
|  | 56 | sout | nl; | 
|---|
|  | 57 | sout | "unsigned short int"; | 
|---|
|  | 58 | usi = 0; | 
|---|
|  | 59 | sout | wd(__bitsizeof(usi)+2, pad0(bin(usi))) | leading0s( usi ); | 
|---|
|  | 60 | for ( usi = 1; usi != 0; usi <<= 1 ) { | 
|---|
|  | 61 | sout | wd(__bitsizeof(usi)+2, pad0(bin(usi))) | leading0s( usi ); | 
|---|
|  | 62 | } // for | 
|---|
|  | 63 | sout | nl; | 
|---|
|  | 64 |  | 
|---|
|  | 65 | sout | "int"; | 
|---|
|  | 66 | i = 0; | 
|---|
|  | 67 | sout | wd(__bitsizeof(i)+2, pad0(bin(i))) | leading0s( i ); | 
|---|
|  | 68 | for ( i = 1; i != 0; i <<= 1 ) { | 
|---|
|  | 69 | sout | wd(__bitsizeof(i)+2, pad0(bin(i))) | leading0s( i ); | 
|---|
|  | 70 | } // for | 
|---|
|  | 71 | sout | nl; | 
|---|
|  | 72 | sout | "unsigned int"; | 
|---|
|  | 73 | ui = 0; | 
|---|
|  | 74 | sout | wd(__bitsizeof(ui)+2, pad0(bin(ui))) | leading0s( ui ); | 
|---|
|  | 75 | for ( ui = 1; ui != 0; ui <<= 1 ) { | 
|---|
|  | 76 | sout | wd(__bitsizeof(ui)+2, pad0(bin(ui))) | leading0s( ui ); | 
|---|
|  | 77 | } // for | 
|---|
|  | 78 | sout | nl; | 
|---|
|  | 79 |  | 
|---|
|  | 80 | sout | "long int"; | 
|---|
|  | 81 | li = 0; | 
|---|
|  | 82 | sout | wd(__bitsizeof(li)+2, pad0(bin(li))) | leading0s( li ); | 
|---|
|  | 83 | for ( li = 1; li != 0; li <<= 1 ) { | 
|---|
|  | 84 | sout | wd(__bitsizeof(li)+2, pad0(bin(li))) | leading0s( li ); | 
|---|
|  | 85 | } // for | 
|---|
|  | 86 | sout | nl; | 
|---|
|  | 87 | sout | "unsigned long int"; | 
|---|
|  | 88 | uli = 0; | 
|---|
|  | 89 | sout | wd(__bitsizeof(uli)+2, pad0(bin(uli))) | leading0s( uli ); | 
|---|
|  | 90 | for ( uli = 1; uli != 0; uli <<= 1 ) { | 
|---|
|  | 91 | sout | wd(__bitsizeof(uli)+2, pad0(bin(uli))) | leading0s( uli ); | 
|---|
|  | 92 | } // for | 
|---|
|  | 93 | sout | nl; | 
|---|
|  | 94 |  | 
|---|
|  | 95 | sout | "long long int"; | 
|---|
|  | 96 | lli = 0; | 
|---|
|  | 97 | sout | wd(__bitsizeof(lli)+2, pad0(bin(lli))) | leading0s( lli ); | 
|---|
|  | 98 | for ( lli = 1; lli != 0; lli <<= 1 ) { | 
|---|
|  | 99 | sout | wd(__bitsizeof(lli)+2, pad0(bin(lli))) | leading0s( lli ); | 
|---|
|  | 100 | } // for | 
|---|
|  | 101 | sout | nl; | 
|---|
|  | 102 | ulli = 0; | 
|---|
|  | 103 | sout | wd(__bitsizeof(ulli)+2, pad0(bin(ulli))) | leading0s( ulli ); | 
|---|
|  | 104 | sout | "unsigned long long int"; | 
|---|
|  | 105 | for ( ulli = 1; ulli != 0; ulli <<= 1 ) { | 
|---|
|  | 106 | sout | wd(__bitsizeof(ulli)+2, pad0(bin(ulli))) | leading0s( ulli ); | 
|---|
|  | 107 | } // for | 
|---|
|  | 108 | sout | nl; | 
|---|
|  | 109 | #endif // 0 | 
|---|
|  | 110 | //============================================================ | 
|---|
|  | 111 | #if 1 | 
|---|
|  | 112 | sout | nl | "trailing0s" | nl | nl; | 
|---|
|  | 113 |  | 
|---|
|  | 114 | sout | "signed char"; | 
|---|
|  | 115 | for ( sc = 1; sc != 0; sc <<= 1 ) { | 
|---|
|  | 116 | sout | wd(__bitsizeof(sc)+2, pad0(bin(sc))) | trailing0s( sc ); | 
|---|
|  | 117 | } // for | 
|---|
|  | 118 | sout | wd(__bitsizeof(sc)+2, pad0(bin(sc))) | trailing0s( sc ); | 
|---|
|  | 119 | sout | nl; | 
|---|
|  | 120 | sout | "unsigned char"; | 
|---|
|  | 121 | for ( usc = 1; usc != 0; usc <<= 1 ) { | 
|---|
|  | 122 | sout | wd(__bitsizeof(usc)+2, pad0(bin(usc))) | trailing0s( usc ); | 
|---|
|  | 123 | } // for | 
|---|
|  | 124 | sout | wd(__bitsizeof(usc)+2, pad0(bin(usc))) | trailing0s( usc ); | 
|---|
|  | 125 | sout | nl; | 
|---|
|  | 126 |  | 
|---|
|  | 127 | sout | "short int"; | 
|---|
|  | 128 | for ( si = 1; si != 0; si <<= 1 ) { | 
|---|
|  | 129 | sout | wd(__bitsizeof(si)+2, pad0(bin(si))) | trailing0s( si ); | 
|---|
|  | 130 | } // for | 
|---|
|  | 131 | sout | wd(__bitsizeof(si)+2, pad0(bin(si))) | trailing0s( si ); | 
|---|
|  | 132 | sout | nl; | 
|---|
|  | 133 | sout | "unsigned short int"; | 
|---|
|  | 134 | for ( usi = 1; usi != 0; usi <<= 1 ) { | 
|---|
|  | 135 | sout | wd(__bitsizeof(usi)+2, pad0(bin(usi))) | trailing0s( usi ); | 
|---|
|  | 136 | } // for | 
|---|
|  | 137 | sout | wd(__bitsizeof(usi)+2, pad0(bin(usi))) | trailing0s( usi ); | 
|---|
|  | 138 | sout | nl; | 
|---|
|  | 139 |  | 
|---|
|  | 140 | sout | "int"; | 
|---|
|  | 141 | for ( i = 1; i != 0; i <<= 1 ) { | 
|---|
|  | 142 | sout | wd(__bitsizeof(i)+2, pad0(bin(i))) | trailing0s( i ); | 
|---|
|  | 143 | } // for | 
|---|
|  | 144 | sout | wd(__bitsizeof(i)+2, pad0(bin(i))) | trailing0s( i ); | 
|---|
|  | 145 | sout | nl; | 
|---|
|  | 146 | sout | "unsigned int"; | 
|---|
|  | 147 | for ( ui = 1; ui != 0; ui <<= 1 ) { | 
|---|
|  | 148 | sout | wd(__bitsizeof(ui)+2, pad0(bin(ui))) | trailing0s( ui ); | 
|---|
|  | 149 | } // for | 
|---|
|  | 150 | sout | wd(__bitsizeof(ui)+2, pad0(bin(ui))) | trailing0s( ui ); | 
|---|
|  | 151 | sout | nl; | 
|---|
|  | 152 |  | 
|---|
|  | 153 | sout | "long int"; | 
|---|
|  | 154 | for ( li = 1; li != 0; li <<= 1 ) { | 
|---|
|  | 155 | sout | wd(__bitsizeof(li)+2, pad0(bin(li))) | trailing0s( li ); | 
|---|
|  | 156 | } // for | 
|---|
|  | 157 | sout | wd(__bitsizeof(li)+2, pad0(bin(li))) | trailing0s( li ); | 
|---|
|  | 158 | sout | nl; | 
|---|
|  | 159 | sout | "unsigned long int"; | 
|---|
|  | 160 | for ( uli = 1; uli != 0; uli <<= 1 ) { | 
|---|
|  | 161 | sout | wd(__bitsizeof(uli)+2, pad0(bin(uli))) | trailing0s( uli ); | 
|---|
|  | 162 | } // for | 
|---|
|  | 163 | sout | wd(__bitsizeof(uli)+2, pad0(bin(uli))) | trailing0s( uli ); | 
|---|
|  | 164 | sout | nl; | 
|---|
|  | 165 |  | 
|---|
|  | 166 | sout | "long long int"; | 
|---|
|  | 167 | for ( lli = 1; lli != 0; lli <<= 1 ) { | 
|---|
|  | 168 | sout | wd(__bitsizeof(lli)+2, pad0(bin(lli))) | trailing0s( lli ); | 
|---|
|  | 169 | } // for | 
|---|
|  | 170 | sout | wd(__bitsizeof(lli)+2, pad0(bin(lli))) | trailing0s( lli ); | 
|---|
|  | 171 | sout | nl; | 
|---|
|  | 172 | sout | "unsigned long long int"; | 
|---|
|  | 173 | for ( ulli = 1; ulli != 0; ulli <<= 1 ) { | 
|---|
|  | 174 | sout | wd(__bitsizeof(ulli)+2, pad0(bin(ulli))) | trailing0s( ulli ); | 
|---|
|  | 175 | } // for | 
|---|
|  | 176 | sout | wd(__bitsizeof(ulli)+2, pad0(bin(ulli))) | trailing0s( ulli ); | 
|---|
|  | 177 | sout | nl; | 
|---|
|  | 178 | #endif // 0 | 
|---|
|  | 179 | //============================================================ | 
|---|
|  | 180 | #if 1 | 
|---|
|  | 181 | sout | nl | "all0s" | nl | nl; | 
|---|
|  | 182 |  | 
|---|
|  | 183 | sout | "signed char"; | 
|---|
|  | 184 | for ( sc = 0; sc != -1hh; sc = (sc << 1) + 1 ) { | 
|---|
|  | 185 | sout | wd(__bitsizeof(sc)+2, pad0(bin(sc))) | all0s( sc ); | 
|---|
|  | 186 | } // for | 
|---|
|  | 187 | sout | wd(__bitsizeof(sc)+2, pad0(bin(sc))) | all0s( sc ); | 
|---|
|  | 188 | sout | nl; | 
|---|
|  | 189 | sout | "unsigned char"; | 
|---|
|  | 190 | for ( usc = 0; usc != -1hh; usc = (usc << 1) + 1 ) { | 
|---|
|  | 191 | sout | wd(__bitsizeof(usc)+2, pad0(bin(usc))) | all0s( usc ); | 
|---|
|  | 192 | } // for | 
|---|
|  | 193 | sout | wd(__bitsizeof(usc)+2, pad0(bin(usc))) | all0s( usc ); | 
|---|
|  | 194 | sout | nl; | 
|---|
|  | 195 |  | 
|---|
|  | 196 | sout | "short int"; | 
|---|
|  | 197 | for ( si = 0; si != -1h; si = (si << 1) + 1 ) { | 
|---|
|  | 198 | sout | wd(__bitsizeof(si)+2, pad0(bin(si))) | all0s( si ); | 
|---|
|  | 199 | } // for | 
|---|
|  | 200 | sout | wd(__bitsizeof(si)+2, pad0(bin(si))) | all0s( si ); | 
|---|
|  | 201 | sout | nl; | 
|---|
|  | 202 | sout | "unsigned short int"; | 
|---|
|  | 203 | for ( usi = 0; usi != -1h; usi = (usi << 1) + 1 ) { | 
|---|
|  | 204 | sout | wd(__bitsizeof(usi)+2, pad0(bin(usi))) | all0s( usi ); | 
|---|
|  | 205 | } // for | 
|---|
|  | 206 | sout | wd(__bitsizeof(usi)+2, pad0(bin(usi))) | all0s( usi ); | 
|---|
|  | 207 | sout | nl; | 
|---|
|  | 208 |  | 
|---|
|  | 209 | sout | "int"; | 
|---|
|  | 210 | for ( i = 0; i != -1; i = (i << 1) + 1 ) { | 
|---|
|  | 211 | sout | wd(__bitsizeof(i)+2, pad0(bin(i))) | all0s( i ); | 
|---|
|  | 212 | } // for | 
|---|
|  | 213 | sout | wd(__bitsizeof(i)+2, pad0(bin(i))) | all0s( i ); | 
|---|
|  | 214 | sout | nl; | 
|---|
|  | 215 | sout | "unsigned int"; | 
|---|
|  | 216 | for ( ui = 0; ui != -1; ui = (ui << 1) + 1 ) { | 
|---|
|  | 217 | sout | wd(__bitsizeof(ui)+2, pad0(bin(ui))) | all0s( ui ); | 
|---|
|  | 218 | } // for | 
|---|
|  | 219 | sout | wd(__bitsizeof(ui)+2, pad0(bin(ui))) | all0s( ui ); | 
|---|
|  | 220 | sout | nl; | 
|---|
|  | 221 |  | 
|---|
|  | 222 | sout | "long int"; | 
|---|
|  | 223 | for ( li = 0; li != -1; li = (li << 1) + 1 ) { | 
|---|
|  | 224 | sout | wd(__bitsizeof(li)+2, pad0(bin(li))) | all0s( li ); | 
|---|
|  | 225 | } // for | 
|---|
|  | 226 | sout | wd(__bitsizeof(li)+2, pad0(bin(li))) | all0s( li ); | 
|---|
|  | 227 | sout | nl; | 
|---|
|  | 228 | sout | "unsigned long int"; | 
|---|
|  | 229 | for ( uli = 0; uli != -1; uli = (uli << 1) + 1 ) { | 
|---|
|  | 230 | sout | wd(__bitsizeof(uli)+2, pad0(bin(uli))) | all0s( uli ); | 
|---|
|  | 231 | } // for | 
|---|
|  | 232 | sout | wd(__bitsizeof(uli)+2, pad0(bin(uli))) | all0s( uli ); | 
|---|
|  | 233 | sout | nl; | 
|---|
|  | 234 |  | 
|---|
|  | 235 | sout | "long long int"; | 
|---|
|  | 236 | for ( lli = 0; lli != -1; lli = (lli << 1) + 1 ) { | 
|---|
|  | 237 | sout | wd(__bitsizeof(lli)+2, pad0(bin(lli))) | all0s( lli ); | 
|---|
|  | 238 | } // for | 
|---|
|  | 239 | sout | wd(__bitsizeof(lli)+2, pad0(bin(lli))) | all0s( lli ); | 
|---|
|  | 240 | sout | nl; | 
|---|
|  | 241 | sout | "unsigned long long int"; | 
|---|
|  | 242 | for ( ulli = 0; ulli != -1; ulli = (ulli << 1) + 1 ) { | 
|---|
|  | 243 | sout | wd(__bitsizeof(ulli)+2, pad0(bin(ulli))) | all0s( ulli ); | 
|---|
|  | 244 | } // for | 
|---|
|  | 245 | sout | wd(__bitsizeof(ulli)+2, pad0(bin(ulli))) | all0s( ulli ); | 
|---|
|  | 246 | sout | nl; | 
|---|
|  | 247 | #endif // 0 | 
|---|
|  | 248 | //============================================================ | 
|---|
|  | 249 | #if 1 | 
|---|
|  | 250 | sout | nl | "all1s" | nl | nl; | 
|---|
|  | 251 |  | 
|---|
|  | 252 | sout | "signed char"; | 
|---|
|  | 253 | for ( sc = 0; sc != -1hh; sc = (sc << 1) + 1 ) { | 
|---|
|  | 254 | sout | wd(__bitsizeof(sc)+2, pad0(bin(sc))) | all1s( sc ); | 
|---|
|  | 255 | } // for | 
|---|
|  | 256 | sout | wd(__bitsizeof(sc)+2, pad0(bin(sc))) | all1s( sc ); | 
|---|
|  | 257 | sout | nl; | 
|---|
|  | 258 | sout | "unsigned char"; | 
|---|
|  | 259 | for ( usc = 0; usc != -1hh; usc = (usc << 1) + 1 ) { | 
|---|
|  | 260 | sout | wd(__bitsizeof(usc)+2, pad0(bin(usc))) | all1s( usc ); | 
|---|
|  | 261 | } // for | 
|---|
|  | 262 | sout | wd(__bitsizeof(usc)+2, pad0(bin(usc))) | all1s( usc ); | 
|---|
|  | 263 | sout | nl; | 
|---|
|  | 264 |  | 
|---|
|  | 265 | sout | "short int"; | 
|---|
|  | 266 | for ( si = 0; si != -1h; si = (si << 1) + 1 ) { | 
|---|
|  | 267 | sout | wd(__bitsizeof(si)+2, pad0(bin(si))) | all1s( si ); | 
|---|
|  | 268 | } // for | 
|---|
|  | 269 | sout | wd(__bitsizeof(si)+2, pad0(bin(si))) | all1s( si ); | 
|---|
|  | 270 | sout | nl; | 
|---|
|  | 271 | sout | "unsigned short int"; | 
|---|
|  | 272 | for ( usi = 0; usi != -1h; usi = (usi << 1) + 1 ) { | 
|---|
|  | 273 | sout | wd(__bitsizeof(usi)+2, pad0(bin(usi))) | all1s( usi ); | 
|---|
|  | 274 | } // for | 
|---|
|  | 275 | sout | wd(__bitsizeof(usi)+2, pad0(bin(usi))) | all1s( usi ); | 
|---|
|  | 276 | sout | nl; | 
|---|
|  | 277 |  | 
|---|
|  | 278 | sout | "int"; | 
|---|
|  | 279 | for ( i = 0; i != -1; i = (i << 1) + 1 ) { | 
|---|
|  | 280 | sout | wd(__bitsizeof(i)+2, pad0(bin(i))) | all1s( i ); | 
|---|
|  | 281 | } // for | 
|---|
|  | 282 | sout | wd(__bitsizeof(i)+2, pad0(bin(i))) | all1s( i ); | 
|---|
|  | 283 | sout | nl; | 
|---|
|  | 284 | sout | "unsigned int"; | 
|---|
|  | 285 | for ( ui = 0; ui != -1; ui = (ui << 1) + 1 ) { | 
|---|
|  | 286 | sout | wd(__bitsizeof(ui)+2, pad0(bin(ui))) | all1s( ui ); | 
|---|
|  | 287 | } // for | 
|---|
|  | 288 | sout | wd(__bitsizeof(ui)+2, pad0(bin(ui))) | all1s( ui ); | 
|---|
|  | 289 | sout | nl; | 
|---|
|  | 290 |  | 
|---|
|  | 291 | sout | "long int"; | 
|---|
|  | 292 | for ( li = 0; li != -1; li = (li << 1) + 1 ) { | 
|---|
|  | 293 | sout | wd(__bitsizeof(li)+2, pad0(bin(li))) | all1s( li ); | 
|---|
|  | 294 | } // for | 
|---|
|  | 295 | sout | wd(__bitsizeof(li)+2, pad0(bin(li))) | all1s( li ); | 
|---|
|  | 296 | sout | nl; | 
|---|
|  | 297 | sout | "unsigned long int"; | 
|---|
|  | 298 | for ( uli = 0; uli != -1; uli = (uli << 1) + 1 ) { | 
|---|
|  | 299 | sout | wd(__bitsizeof(uli)+2, pad0(bin(uli))) | all1s( uli ); | 
|---|
|  | 300 | } // for | 
|---|
|  | 301 | sout | wd(__bitsizeof(uli)+2, pad0(bin(uli))) | all1s( uli ); | 
|---|
|  | 302 | sout | nl; | 
|---|
|  | 303 |  | 
|---|
|  | 304 | sout | "long long int"; | 
|---|
|  | 305 | for ( lli = 0; lli != -1; lli = (lli << 1) + 1 ) { | 
|---|
|  | 306 | sout | wd(__bitsizeof(lli)+2, pad0(bin(lli))) | all1s( lli ); | 
|---|
|  | 307 | } // for | 
|---|
|  | 308 | sout | wd(__bitsizeof(lli)+2, pad0(bin(lli))) | all1s( lli ); | 
|---|
|  | 309 | sout | nl; | 
|---|
|  | 310 | sout | "unsigned long long int"; | 
|---|
|  | 311 | for ( ulli = 0; ulli != -1; ulli = (ulli << 1) + 1 ) { | 
|---|
|  | 312 | sout | wd(__bitsizeof(ulli)+2, pad0(bin(ulli))) | all1s( ulli ); | 
|---|
|  | 313 | } // for | 
|---|
|  | 314 | sout | wd(__bitsizeof(ulli)+2, pad0(bin(ulli))) | all1s( ulli ); | 
|---|
|  | 315 | sout | nl; | 
|---|
|  | 316 | #endif // 0 | 
|---|
|  | 317 | } // main | 
|---|
|  | 318 |  | 
|---|
|  | 319 | // Local Variables: // | 
|---|
|  | 320 | // tab-width: 4 // | 
|---|
|  | 321 | // compile-command: "cfa bitmanip1.cfa" // | 
|---|
|  | 322 | // End: // | 
|---|