[GO] Comment convertir 0,5 en 1056964608 en un seul coup

En langage C, vous pouvez convertir "0.5" en "1056964608" en une seule fois.

#include <stdio.h>

int main() {
    float f = 0.5;
    printf("%d\n", *(int *)&f); // => 1056964608
}

(Cependant, la méthode d'écriture change en fonction du système de traitement et de l'architecture du processeur. Ce qui précède est un exemple de MacOS Sierra et clang-900.0.39.2)

Comment puis-je écrire cela en langue Go? En conclusion, vous pouvez faire quelque chose de similaire avec le type ʻunsafe.Pointer`.

package main

import "fmt"
import "unsafe"

func main() {
    var f float32 = 0.5
    var p unsafe.Pointer
    p = unsafe.Pointer(&f)
    fmt.Printf("%d\n", *(*int32)(p)); // => 1056964608
}

Ce qui est utile, c'est que j'ai l'impression de jouer directement avec la mémoire.

Recommended Posts

Comment convertir 0,5 en 1056964608 en un seul coup
Comment adapter plusieurs bibliothèques d'apprentissage automatique en une seule fois
Comment calculer "xx time" en un seul coup avec Python Timedelta
Comment développer en Python
Comment convertir / restaurer une chaîne avec [] en python
Comment définir Decorator et Decomaker avec une seule fonction
Comment faire du zéro-padding sur une ligne avec OpenCV
Comment convertir des nombres à virgule flottante en nombres binaires en Python
[Python] Comment faire PCA avec Python
Comment gérer une session dans SQLAlchemy
Convertir Markdown en PDF en Python
Comment utiliser les classes dans Theano
Comment écrire sobrement avec des pandas
Comment collecter des images en Python
Comment mettre à jour Spyder dans Anaconda
Comment vérifier le comportement d'ORM avec un fichier avec django
Comment refléter CSS dans Django
Comment tuer des processus en vrac
Comment utiliser Mysql avec python
Comment convertir le modèle Tensorflow en Lite
Comment envelopper C en Python
Comment utiliser ChemSpider en Python
Comment utiliser PubChem avec Python
Comment convertir .mgz en .nii.gz
Comment exécuter du code TensorFlow 1.0 en 2.0
Comment gérer le japonais avec Python
Comment se connecter à Docker + NGINX
Comment appeler PyTorch dans Julia
Comment combiner tous les CSV d'un dossier en un seul CSV
Shellscript pour créer un environnement pyenv sur ubuntu d'un seul coup
Comment afficher les marques de légende en un avec le tracé Python 2D
Comment utiliser les colonnes calculées dans CASTable
[Python] Comment convertir un fichier db en csv
[Introduction à Python] Comment utiliser la classe en Python?
Comment supprimer l'erreur d'affichage dans matplotlib
Comment convertir facilement le format de Markdown
Comment définir dynamiquement des variables en Python
Comment faire R chartr () en Python
[Python] Comment convertir une liste bidimensionnelle en liste unidimensionnelle
Comment convertir Python en fichier exe
Comment supprimer des sessions expirées dans Django
[Itertools.permutations] Comment créer une séquence en Python
Comment utiliser Google Test en langage C
Convertir un fichier psd en png en Python
Comment implémenter un sérialiseur imbriqué avec drf-flex-fields
Comment exécuter des commandes avec Jupyter Notebook
Comment faire 'git fetch --tags' dans GitPython
Comment obtenir stacktrace en python
Comment afficher la table quatre-vingt-dix-neuf en python
Comment extraire une zone de polygone en Python
Comment réattribuer un index dans pandas dataframe
Comment vérifier la version d'opencv avec python
Comment activer SSL (TLS) dans Apache
Comment utiliser l'interpréteur d'Anaconda avec PyCharm
Comment spécifier une cible non vérifiée dans Flake8
Comment gérer des valeurs consécutives dans MySQL
Comment changer de version de Python dans cloud9
Comment régler le contraste de l'image en Python