Simplify read/writeUint24()
diff --git a/Lib/fontTools/ttLib/tables/otBase.py b/Lib/fontTools/ttLib/tables/otBase.py
index 843953a..e617938 100644
--- a/Lib/fontTools/ttLib/tables/otBase.py
+++ b/Lib/fontTools/ttLib/tables/otBase.py
@@ -137,8 +137,7 @@
 	def readUInt24(self):
 		pos = self.pos
 		newpos = pos + 3
-		value = (byteord(self.data[pos]) << 16) | (byteord(self.data[pos+1]) << 8) | byteord(self.data[pos+2])
-		value, = struct.unpack(">H", self.data[pos:newpos])
+		value, = struct.unpack(">l", b'\0'+self.data[pos:newpos])
 		self.pos = newpos
 		return value
 
@@ -406,7 +405,8 @@
 
 	def writeUInt24(self, value):
 		assert 0 <= value < 0x1000000
-		self.items.append(bytesjoin(bytechr(v) for v in (value>>16, (value>>8)&0xFF, value&0xff)))
+		b = struct.pack(">L", value)
+		self.items.append(b[1:])
 	
 	def writeLong(self, value):
 		self.items.append(struct.pack(">l", value))