void p3(void) { unsigned int b=11491255; int a[5]={1,2,8,18,21}; clearBits(a, 5, &b); printf("The result of clearing bits is %u\n", b); }
NFA CreateSingleNFA (wchar_t c) { NFA nfa; Edge e; nfa = malloc (sizeof (struct Automaton)); assert(nfa); /* 初始化nfa的Edge数组 */ nfa->edgeArray = allocEdgeArray(1); /* 初始化nfa的Status状态数组 */ nfa->statusArray = allocStatusArray(2); e = Array_get(nfa->edgeArray, 0); clearBits(e); addCharacter (e, c); link_Two_Status_In_Automaton(nfa,0,1,0); adjustStatusID(nfa); ensureFinalStatus (nfa->end); return nfa ; }
unsigned int putByteNumber(int byteNo, unsigned char byteValue, unsigned int source) { int low = byteNo * 8; int high = low + 7; source = clearBits(low, high, source); unsigned int aByte = byteValue; aByte = aByte << low; return (source | aByte); }
unsigned int assignOneBit(int bitNumber, int bitValue, unsigned int source) { if(bitValue == 0) { return clearBits(bitNumber, bitValue, source); } else if(bitValue == 1) { return setBits(bitNumber, bitNumber, source); } else return 0; }
/** * Eine Sekunde startet. Muss von einem externen * Zeitgeber, z. B. einer RTC, aufgerufen werden. * * Zurueckgegeben wird ein Wahrheitswert. * TRUE bedeutet, das Zeittelegramm wurde korrekt ausgewertet, die Zeitdaten * koennen mit den Gettern abgerufen werden. * FALSE bedeutet, die Auswertung laeuft oder war falsch, die Getter liefern * alte Informationen. */ boolean MyDCF77::newSecond() { boolean retVal = false; if (_highcount != 0) { // Daten _meanvalues[_meanpointer] = _highcount; _meanpointer++; if (_meanpointer > MYDCF77_MEANCOUNT) { _meanpointer = 0; } unsigned long average = 0; for (byte i = 0; i < MYDCF77_MEANCOUNT; i++) { average += _meanvalues[i]; } average /= MYDCF77_MEANCOUNT; DEBUG_PRINT(F("average = ")); DEBUG_PRINT(average); DEBUG_PRINT(F("; highcount = ")); DEBUG_PRINT(_highcount); if (_highcount > average) { _bits[_bitsPointer] = 1; DEBUG_PRINTLN(F("; HIGH")); } else { _bits[_bitsPointer] = 0; DEBUG_PRINTLN(F("; LOW")); } _bitsPointer++; if (_bitsPointer > MYDCF77_TELEGRAMMLAENGE) { _bitsPointer = 0; } } else { // Pause DEBUG_PRINTLN(F("PAUSE")); retVal = decode(); _bitsPointer = 0; clearBits(); } _highcount = 0; return retVal; }
/** * Initialisierung mit dem Pin, an dem das Signal des Empfaengers anliegt */ MyDCF77::MyDCF77(byte signalPin, byte statusLedPin) { _signalPin = signalPin; #ifndef MYDCF77_SIGNAL_IS_ANALOG pinMode(_signalPin, INPUT); #endif _statusLedPin = statusLedPin; pinMode(_statusLedPin, OUTPUT); digitalWrite(_statusLedPin, LOW); clearBits(); for (byte i = 0; i < MYDCF77_MEANCOUNT; i++) { _meanvalues[i] = MYDCF77_MEANSTARTVALUE; } _meanpointer = 0; _highcount = 0; }
oop* oldSpace::object_start(oop* p) { // Find the page start oop* q = p; int b = (int) q; clearBits(b, nthMask(card_shift)); q = (oop*) b; assert(contains(q), "q must be in this space"); int index = (q - bottom()) / card_size_in_oops; int offset = offset_array[index--]; while(offset == card_size_in_oops) { q -= card_size_in_oops; offset = offset_array[index--]; } q -= offset; oop* n = q; assert((*n)->is_mark(), "check for header"); while (n <= p) { q = n; n += as_memOop(n)->size(); } assert( as_memOop(q)->mark()->is_mark(), "Must be mark"); return q; }