Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

menyimpan angka negatif di bidang desimal tabel mysql pada versi 5.0.3

Dari apa yang saya pahami, dokumentasi mengatakan itu tidak akan menyimpan literal "-" karakter , yang berarti mungkin sekarang melakukan apa yang selalu dilakukan bidang INTEGER bertanda tangan lainnya dan menyimpan bit tanda untuk menunjukkan angka negatif.

Anda masih melihat tanda minus di depan angka karena dibuat oleh MySQL sebagai hasil dari bit tanda tersebut.

Jika Anda tidak memahami bit tanda, Anda dapat mempertimbangkan bagaimana byte bertanda dapat menyimpan angka dari -128 hingga 127, sedangkan byte yang tidak bertanda dapat menyimpan angka dari 0 hingga 255. Itu karena salah satu dari 8 bit dalam angka bertanda adalah digunakan untuk menyimpan +/- (1 negatif, 0 positif), sedangkan bit yang tersisa menawarkan angka hingga 2^7 (-128 atau 127).

Jadi, misalnya, jika bit 1111 memiliki bit tanda, mereka akan sama dengan -7 (negatif+4+2+1), tetapi jika tidak bertanda, mereka akan sama dengan 15 (8+4+2+1). Jumlah bit yang disimpan masih sama.

Anda mungkin bertanya-tanya mengapa batas negatif dalam angka bertanda dapat menggunakan bit ke-8, sedangkan batas positif terbatas pada jumlah 7 bit (1 kurang dari bit ke-8). Ini karena 10000000 dianggap negatif dan bit ke-8 secara bersamaan, karena representasi dari -0 sebaliknya berlebihan dengan 00000000 yang mewakili 0. Tidak ada perbedaan antara nol negatif dan positif, jadi bit paling signifikan negatif selalu nilainya bit itu sendiri (tetapi negatif).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara mengupload banyak gambar menggunakan codeigniter

  2. SELECT COUNT(*) lambat, bahkan dengan klausa where

  3. MySQL Kedua (atau ketiga) Indeks Dalam String

  4. Mysql_real_escape_string() Peringatan Kebingungan

  5. Docker tidak dapat menghubungkan aplikasi ke MySQL