It might be feasible but the creatures would be quite weird and I am not sure whether the classical laws of physics would actually still be applicable in this realm.
I once created a python script that performs the calculations, see at the end of this post.
If I input a mass of 1e12 kgs, I get the following output:
Enter mass [kg]1e12
Schwardschild Radius: 1.4851297e-15 m
Surface gravity : 3.0258475e+31 N
Surface temperature : 1.2269853e+11 K
Power dissipation : 3.5621128e+08 W
Will evaporate in : 8.4103192e+19 s
Energy released : 8.9875518e+28 J
In other words, a steady rate of 350 Megawatts of power due to Hawking Radiation alone with a lifetime that is in excess of the known lifetime of the universe. Also note that the black hole itself is only slightly larger than an atomic nucleus. However, to construct the black hole you would have to squeeze a volume of 10 x 10 x 10 kilometers of water into that space.
While the surface gravity is tremendous, the gravity at a distance of say 1 meter is only a few newtons / kg so static structures at that distance should be safe from gravitational collapse. To keep the black hole in place with respect to the creature you could give the black hole a positive charge (done at construction time) and encase it in a metal sphere with with an almost equal positive charge at say 1 meter from the black hole center, the charge distribution on the outer metal sphere could then be used to compensate for local gravity or to accelerate or decelerate the black hole to compensate for the creatures acceleration and deceleration.
Note that the charges involved would be in the order of several tens of coulombs and while easily achieved for the black hole itself (only several moles of protons in the input material to be added, negligible to the total input number), the encasing metal in the outer shell would have to be stripped from at least one electron per metal atom and I am pretty sure that that does not count as a metal anymore and the metal bonding properties would seriously deteriorate. Of course you can put the encasing metal sphere further away to lower the charge density per amount of metal.
If the creature needs more power, it can always feed the black hole with negatively charged particles by aiming in the neighborhood of the black hole at relativistic speeds so that the particles start orbiting the black hole in close proximity. The combination of bremsstrahlung and collisions between the particles in orbit and the virtual particles and photons near the schwarzschild radius are thought to be a fairly efficient mass to energy converter, converting up to 10% of the incoming mass to energy, though it should be noted that at these scales and timeframes classical or even relativistic laws of physics may no longer be applicable.
The python script:
# manifest constants
SpeedOfLight = 2.99792458e8 # m/s^2
GravitationalConstant = 6.67384e-11 # Nm^2/kg^2
ReducedPlanckConstant = 1.054571726e-34 # Js
BoltzmannConstant = 1.3806488e-23 # J/K
CosmicBackgroundTemperature = 2.725 # K
Compute the Schwarzshield radius of a given mass @mass. The Schwarzschild
radius is the distance from the centre of the black hole to its even horizon,
assuming a perfect sphere.
rs = 2 * GravitationalConstant * mass / math.pow(SpeedOfLight, 2.0)
Gravity at the event horizon of a black hgole with given mass @mass.
gs = math.pow(SpeedOfLight, 4.0) / ( 4.0 * GravitationalConstant * mass )
Surface temperature at the event horizon of a black hgole with given mass @mass
due to Hawking Radiation
th = ReducedPlanckConstant * math.pow(SpeedOfLight, 3.0) / (
8.0 * math.pi * GravitationalConstant * mass * BoltzmannConstant )
return surfacetemperature(mass) > CosmicBackgroundTemperature
Black hole dissipation time (due to Hawking Radiation) at initial mass @mass
tev = 5120.0 * math.pi * math.pow(GravitationalConstant, 2.0) * math.pow(mass, 3.0) / ( ReducedPlanckConstant * math.pow(SpeedOfLight, 4.0) )
Total mass conversion is simple
return mass * math.pow(SpeedOfLight, 2.0)
And dissipation is also simple
p = ReducedPlanckConstant * math.pow(SpeedOfLight, 6.0) / ( 15360.0 * math.pi * math.pow(GravitationalConstant, 2.0) * math.pow(mass, 2.0) )
if __name__ == "__main__":
print "Black hole calculations"
print "Example masses: 80 (average human male), 5.972e24 (Earth), 1.98892e30 (Sun), 7.3477e22 (Moon), 1.672621777e-27 (proton)"
mass = float(raw_input("Enter mass [kg]"))
print "Schwardschild Radius: %10.7e m" % schwarzschildradius(mass)
print "Surface gravity : %10.7e N" % surfacegravity(mass)
print "Surface temperature : %10.7e K" % surfacetemperature(mass)
print "Power dissipation : %10.7e W" % evaporationdissipation(mass)
print "Will evaporate in : %10.7e s" % evaporationtime(mass)
print "Energy released : %10.7e J" % evaporationenergy(mass)