Send data into float texture without clamping

for 32 bit Int,

is this correct way to do this:

   var imageData = new Uint32Array(persDatas[threshold].length)
   for (var x = 0; x < length; x++) {
            var segID = Math.floor((255 * persDatas[threshold][x]) / response.data.max)
            imageData[x] = segID
    }
  
   var texture = new THREE.DataTexture(
            imageData,
            4104,
            1856,
            THREE.RedFormat,
            THREE.IntType
        )

and to read the texture in custom shader glsl:

  float segID = sampleTexture(persTexture, vPosition.xy).r;

is this correct way to do it?