first commit

This commit is contained in:
chacha
2026-02-23 11:32:57 +01:00
commit d50c3ff48f
16 changed files with 3207 additions and 0 deletions

102
Utils.c Normal file
View File

@@ -0,0 +1,102 @@
#define _BSD_SOURCE 1
#include <stdlib.h>
#include <stdio.h>
#include "Utils.h"
inline void
printbin32( const unsigned long ulVal,
const unsigned char bGroupByBytes)
{
for(unsigned long idxBit = 1<<31;idxBit>0;idxBit>>=1)
{
if(bGroupByBytes)
switch(idxBit)
{
case 1<<23:
case 1<<15:
case 1<<7:
putchar(' ');
}
putchar(ulVal & idxBit ? '1' : '0');
}
}
inline unsigned char
count_bit32(const unsigned long ulVal)
{
unsigned char cpt = 0;
for(unsigned long idxBit = 1<<31;idxBit>0;idxBit>>=1)
if(ulVal & idxBit)
cpt++;
return cpt;
}
inline unsigned char
count_bit8(const unsigned char ulVal)
{
unsigned char cpt = 0;
for(unsigned char idxBit = 1<<7;idxBit>0;idxBit>>=1)
if(ulVal & idxBit)
cpt++;
return cpt;
}
inline void
printbin32Info( const unsigned long ulVal,
const unsigned short uhb,
const unsigned short ulb)
{
printbin32(ulVal,1);
putchar('\n');
printf("%02d....%02d %02d....%02d %02d....%02d %02d....%02d\n",
uhb,
3*(uhb+ulb+1)/4, 3*((uhb+ulb+1)/4)-1,
(uhb+ulb+1)/2, ((uhb+ulb+1)/2)-1,
(uhb+ulb+1)/4, ((uhb+ulb+1)/4)-1,
ulb);
}
unsigned long get_notnull_random()
{
unsigned long val;
do
val = random()<<1 ^ random();
while(!val);
return val;
}
unsigned long get_notnull_random_balanced()
{
unsigned long val;
do
val = random()<<1 ^ random();
while(count_bit32(val) != 16);
return val;
}
unsigned char get_notnull8_random_balanced()
{
unsigned char val;
static unsigned char prev = 0;
do
val = random()<<1 ^ random();
while((count_bit8(val) != 4) || (val == prev));
prev = val;
return val;
}
unsigned long get_notnull_random_balanced_mByte()
{
unsigned long val;
static unsigned long prev = 0;
do
val = (get_notnull8_random_balanced() << 24)
| (get_notnull8_random_balanced() << 16)
| (get_notnull8_random_balanced() << 8)
| (get_notnull8_random_balanced() << 0);
while(val == prev);
prev = val;
return val;
}