Java 原始数据类型 和 字节数组 互转

convert java primitive data type into byte array

Java中有时需要手动序列化(或是类似行为), ByteBuffer和DataOutput和DataInput有点笨重, 必须要new对象, 对于字节操作密集型程序, 在粒度很小但却调用非常频繁的代码段new对象, 很不划算.

我无意中发现了 JDK 中的 java.nio.Bits 做了这方面的事, 但是这个类没有public, 于是我直接将code copy整理出来做成一个util类.

需要注意的是: 数值类型和 字节互转时, 涉及到 大端和小端的问题, 此处一律用大端(Java默认, 以及标准的网络字节序都是大端)

该util类没有包含 float和double, 因为我的程序需要有精确比较, 所有有小数点的值必须用BigDecimal, 所以我就没有处理float和double了.

String类型涉及到charset问题, 可以通过String类自身函数做到和byte数组之间的互相转换.

代码如下:

/**
 * copy from java.nio.Bits
 * 
 * all bytes represent Number using bigEndian
 * 
 * @author smithfox ssm.fox@gmail.com
 *
 */
public class Bytes {
	/**
	 * will fill 8 byte into v from offset, include v[offset] self
	 * @param v
	 * @param offset
	 * @param x
	 */
	public static void fill(byte[] v, int offset, long x){
		v[offset+0] = (byte)(x >> 56);
		v[offset+1] = (byte)(x >> 48);
		v[offset+2] = (byte)(x >> 40);
		v[offset+3] = (byte)(x >> 32);
		v[offset+4] = (byte)(x >> 24);
		v[offset+5] = (byte)(x >> 16);
		v[offset+6] = (byte)(x >> 8);
		v[offset+7] = (byte)(x >> 0);
	}
	
	/**
	 * return 8 bytes
	 * @param x
	 * @return
	 */
	public static byte[] bytes(long x){
		byte[] v = new byte[8];
		v[0] = (byte)(x >> 56);
		v[1] = (byte)(x >> 48);
		v[2] = (byte)(x >> 40);
		v[3] = (byte)(x >> 32);
		v[4] = (byte)(x >> 24);
		v[5] = (byte)(x >> 16);
		v[6] = (byte)(x >> 8);
		v[7] = (byte)(x >> 0);
		
		return v;
	}
	
	public static long tolong(byte[] x){
		return ((((long)x[0] & 0xff) << 56) |
				(((long)x[1] & 0xff) << 48) |
				(((long)x[2] & 0xff) << 40) |
				(((long)x[3] & 0xff) << 32) |
				(((long)x[4] & 0xff) << 24) |
				(((long)x[5] & 0xff) << 16) |
				(((long)x[6] & 0xff) <<  8) |
				(((long)x[7] & 0xff) <<  0));

	}
	
    public static void fill(byte[] v, int offset, int x){
		v[offset+0] = (byte)(x >> 24);
		v[offset+1] = (byte)(x >> 16);
		v[offset+2] = (byte)(x >> 8);
		v[offset+3] = (byte)(x >> 0);
	}

    public static byte[] bytes(int x){
		byte[] v = new byte[4];
		v[0] = (byte)(x >> 24);
		v[1] = (byte)(x >> 16);
		v[2] = (byte)(x >> 8);
		v[3] = (byte)(x >> 0);
		
		return v;
	}

	public static int toint(byte[] x){
		return ((((int)x[0] & 0xff) << 24) |
				(((int)x[1] & 0xff) << 16) |
				(((int)x[2] & 0xff) <<  8) |
				(((int)x[3] & 0xff) <<  0));

	}

    public static void fill(byte[] v, int offset, short x){
		v[offset+0] = (byte)(x >> 8);
		v[offset+1] = (byte)(x >> 0);
	}

    public static byte[] bytes(short x){
		byte[] v = new byte[2];
		v[0] = (byte)(x >> 8);
		v[1] = (byte)(x >> 0);
		
		return v;
	}

	public static short toshort(byte[] x){
		return (short)((x[0] << 8) | (x[1] & 0xff));

	}

    public static void fill(byte[] v, int offset, char x){
		v[offset+0] = (byte)(x >> 8);
		v[offset+1] = (byte)(x >> 0);
	}

    public static byte[] bytes(char x){
		byte[] v = new byte[2];
		v[0] = (byte)(x >> 8);
		v[1] = (byte)(x >> 0);
		
		return v;
	}

	public static char tochar(byte[] x){
		return (char)((x[0] << 8) | (x[1] & 0xff));

	}
}

sdf

smithfox | Friday 10 June 2011 at 3:51 pm | | Java       

six comments

Gucci iPhone 6 Plus Cases

If the idea sounds familiar, it’s because the company initially launched the case on Indiegogo in 2013. After running into a few supply issues, they’re finally bringing the case to market now, as well as shipping cases to its original backers.

Gucci iPhone 6 Plus Cases, (URL) - 23-04-’15 14:02
Entretien Ménager COMMERCIAL

Toujours plus performant et soucieux de satisfaire au mieux les besoins de
sa clientèle, G.E.M vous propose une solution unique avec ses forfaits mensuels !

Toujours des produits écologiques, car G.E.M est respectueux
de l’environnement eet de vottre santé !

Toujours des tarifs parfaitement adaptés et étudiés spécialement pour vous par
G.E.M selon le type dde votre résidence.service de nettoyage résidentiel, Entretien ménager

Notre service résidentiel d’entretien et de nettoyage personnalisé vous garanit toute
l’attention nécessaire à assurer la salubrité de votre maison. Nos roduits écologiques et
notre technologie haut de gamme nous permettentt de débarrasser votre résidence de bactéries ett de graisse sans
utilisation de produits chimiques néfastes à votre environnement.
Nous assurons un nettoyage complet dess chambres
à coucher, salles de bains, cuisines et salles de séjour, ainsi
que tout endroit difficile à traiter. Quelle que soit la difficulté du projet

Entretien Ménager COMMERCIAL, (URL) - 18-06-’17 11:56
entretien menager Commercial

G.E.M Menage est lee spécialiste du Grand Ménage commercial
à Montréal. Nous vous orfrons la gamme la plus complète du grand ménage commercial à Montréal, Rive Nord et Rive Sud, et nous réajustons nos services à vos
besoins. Notre service couvre différends secteurs d’activité:
Restaurants CPE et Garderies Privés Cliniqaues eet Milieux Hospitaliers
Concessionnaires automobiles Centres de Conditionnement Physiques
Inatitutions Publiques ett Ecoles
Faites-nous confiance, nous nou occupons de tout !

Que ce soit au travaiil ou à la maison, la propreté générale
de l’environnement peut affecter votre santé, ainsi que celle de votre entourage.
C’est pourquoi un entretien soigné et régulier est nécessaire pour assurer efficacement la salubrité optimale du domicile ou de l’espace dee travail.

Si faire le temkps vous manque pour faire un grand-ménage il
est temps d’appelerG.E.M ménage, notre compagnie de professionnels de nettoyage !

Il n’est pas nécessaire de faire un grrand ménage dee toute la
maison pour avoir recoure à nos services, nous disposons auss d’équipes de ménage professionnel et d’experts en nettoyage pour des plus
petrits projets spécifiques comme laver les vitres, laver les tapis,
laver les murs seulement, les divans ou, nettoyer lees conduits de ventilation.

22 Compagnie de nettoyage
Depuis plus de 15 ans, G.E.M est une compagnie de nettoyawge soucieuse d’offrir la meilleure expertise à Montréal dans le domaine du nettoyage ccommercial et résidentiel.
Grâce à des professionnels recrutés et formés selon des critères rigoureux, vous
bénéficiez d’une expertise de qualité et dans le respect des norrmes environnementales.

23 Compagnie de ménage Montréal
Vous souhaitez vous attacher les services de lla meilleure compagnie de ménage Montréal ?

Faites appel à G.E.M, spécialiste du nettoyage commercial et résidentielavec une expérience dde plus de 15 ans.

C’est une structure qui vous offre plusieuds services performants de nettoyage à un prix avantageux eet dans le respect de l’environnement.

24 Entretien ménager et commercial à Montréal
Pour vos besoins d’entretien ménager et commercial à Montréal,
faites confiance à G.E.M, leader du nettoyage depuiis plusieurs années.
Grâce à une solide expérience dans le domaine et une équipe
de professionnels formés en permanence, vous bénéficiez d’une
expertise à la hauteur de vos attentes.

G.E.M ménage une compagne d’entretien ménager professionnel, spécialisée en grandménage, commercial, résidentiel et industriel spécialisée dans le grand-ménage à Montréal.

Nous offrons une gamme de services de ménage « à la carte
» tel que ménage après rénovation pour éliminer la poussière, ménage déménagement poour emménager dans une résidence impeccable, ou simplement
ménage ddu printemps résidentiel ou commercial etc…
Confiez-nous votre maison pur un nettoyage complet à chaque visite.
G.E.Mménage est une entreprise professionnelle de ménage
à domicile. Notre équipe estt constitué professionnels qui connaissent votre environnement et vos besoins de ménage résidentiel.
Ce sont des ersonnes pour qui votre satisfaction est primordiale.

Il y a plusieurs avantages àchoisir une compagnie de
ménage commercial bien gérée avec des équipes spécialisées pour
votre grand ménage : le tdavail est mieux fait, de manière
efficace et à taujx concurrentiels.
Chaqhe équipe travaille avec des méthodes équipements et produits efficaces, pour lees tâches spécifiques qu’ils ont
à effectuer selon vvotre contrat de ménage.

Dans le domaine du nettoyage commercial, nos spécialistes offrnt un service complet de nettoyage quotidien ou occasionnel,
le lavage de vitres, le nettoyage de tapis, le
décapage, cirage ett pokissage de plancher. Cet entretien ménager commercial estt essentiel pour maintenir à son sommet notre image corporative.

entretien menager Commercial, (URL) - 24-06-’17 17:12
grand ménage

grand ménage, service de femme de ménage
Professionnelle de l’entretien, notre dynamique entreprise saura
réaliser pour vous l’ensemble des travaux ménagers.

G.E.M. s’engage sur une prestaation de qualité ! grand ménage
Notre équipe de spécialistes chevronnés accomplira uun travail à la
fois soigné, rapide et économique.
De plus, nous utilisons exclusivement des produits écologiques et hautement
performants, issus ddes toutes dernières technologies.

La vie moderne véhicule aussi de lourdes menaces. D’apparence inoffensive, meubles, appaeils ménagers, matériaux de construction, jouets
ou bjets familiers peuvent dégager des phtalates ou autres redoutabbles composés
chimiques.
entretien ménager résidentiel, grand ménage
Franchise de Nettoyage Résidentiel et Commercial, service
de femme de ménage ,entretien ménager commercial,entretien ménager commercial, ménage
résidentiel, service d’entretien ménager montréal
Nous aidons les personnes désireuses d’être propriétaires d’entreprises prospères à devenir des
professionnels du nettoyage commercial eet de laa maintenance.
En rejoignant notre réseau d’entreprises, vous bénéficierez d’un avantage concurrentiel ainsi qque d’une aide
apportée par un modèle d’affaires éprouvé vous assurant de travailler avec unn leader du domaine disposant de l’expérience et la stabilité.

Vous disiez augmentez vos revenus afin d’améliorer votre quotidien ?

Faites Appel a G.E.M Ménage! service de femme de ménage ,entretien ménager commercial,entretien ménager commercial,
ménagerésidentiel, service d’entretien ménager
montréal, service dee femme de ménage ,entretien ménager commercial,entretien ménager commercial, ménage résidentiel, service d’entretien ménager
montréal
Franchises de Nettoyage Résidentiel et Commercial disponible Partout A Montréal ,Rive Nord et Rive Sud.

Financement Sans Intérêt par G.E.M .
Un dépôt est obligatoire

Un Investissement de 24 000$ Vous Rapporte (4800$ et plus de Revenus par
Mois)!

Matériel ett formaton fourni

Nous aidons les personnes désireuses d’être propriétaires d’entreprises prospères à devenir des professionnels ddu nettoyage
commercial et de la maintenance. En rejoignant ntre réseau
d’entreprises, vous bénéficierez d’un avantage concurrentiel ainsi que d’une aide apportée par un modèle d’affaires éprouvé vous assurant de travailler avec un leader du ddomaine
disppsant de l’expérience et la stabilité.

G.E.M Ménage vous offre l’opportunité de travailler pendant la journée dde lundi a vendredi .

G.E.MVous propose des contrats d’entretien ménager avec des horaires souples
et un revenu garanti.

Pour les personnes libres,les nouveaux arrivants ou
les sans-emplois G.E.M peut favoriser votre accès au marché du travai !

G.E.M vous proppose des contrats stables et rémunérateurs!

Dans le secteur résidentiel idéal pour un couple, ou un homme seul
dans le secteur commercial
Vous débuter des maintenant

Des techniques et méthodes de travail éprouvées.

Une aide à la constitution ou à l’enregistrement de
leur entreprise.
Dees territoires d’exercice protégés.
Entreprise clés enn main.
Un garantie qui protège votre investissement

Exigences de l’entrée de notre réseau :
Les demanbdes sont examinées attentivement et une enquête relative à la candidature est
menée.
Les candidats doivent passer une entrevue de sélection.
Avant tout début d’activité, les candidats doivent assister à des sessions de formation.

Au G.E.M. noius nous assurons que noos franchisés puissent offrir à leurs clients un service professionnel d’une qualité supérieure à celle de la
concurrence.
Franchise disponible au résidentiel eet commercial

N’hésitez pas à nous contacter
469 Jean-Talon Ouest Suite # 222
Montreal QC
gemmenage.net
gemmenage.com

grand ménage, (URL) - 18-08-’17 20:59
femme de ménage Montreal

femme de ménage Montreal, service de femme de ménage
Proffessionnelle de l’entretien, notre dynamique entreprise saura réaliser
pour vous l’ensemble des travaux ménagers.
G.E.M. s’engage sur une prestation de qualité !
Notre équipe de spécialistes chevronnés accomplira un travail à la fois soigné, rapide ett économique.

De plus, nous utilisons exclusivement des produits écologiques et hautement performants, issus des toutes dernières technologies.

La vie moderne véhicule aussi de lourdes menaces.
D’apparence inoffensive, meubles, appareils ménagers, matériaux de construction, jouets ou objets familiers peuvent dégager des phtalates
ou autres redoutables composés chimiques.

entretien ménager résidentiel, femme de ménage Montreal
Franfhise dde Nettoyage Résidentiel et Commercial, service de femme de ménage ,entretien ménager commercial,entretien ménager commercial,
ménage résidentiel, service d’entretien ménager montréal
Nous aidons les personnes désireuses d’être propriétaires d’entreprises prospères à devenir des professionnels du nettoyage commercial et dde la maintenance.
En rejoignant notre réseau d’entreprises, vokus bénéficierez d’un avantage cojcurrentiel ainsi que
d’une aide apportée par un modèle d’affaires éprouvé
vous assurant de travailler avec un leader du domaine disposant de l’expérience
et la stabilité.
Vous disiez augmentez voos revenus afin d’améliorer votre quotidien ?
Faites Appel a G.E.M Ménage! service de femme de ménage ,entretien ménager commercial,entretien ménager
commercial, ménage résidentiel, service d’entretien ménager montréal, service de femme de ménage ,
entretien ménager commercial,entretien ménager commercial, ménage résidentiel, service d’entretien ménager montréal
Franchises de Nettoyage Résidentiel et Commsrcial disponible
Partouht A Montréal ,Rive Nord et Rive Sud.

Finanement Sans Intérêt par G.E.M .
Un dépôt est obligatoire

Un Investissement de 24 000$ Vous Rapporte (4800$ et plus dde Revenus paar Mois)!

Matériel et formation fourni

Nous aidons les personnes désireuses d’être propriétaires d’entreprises prospères à
devenir des professionnels du nettoyave commercial et
de la maintenance. En rejoignant notre réseau d’entreprises, vous
bénéficierez d’un avantage concurrentiel ainsi qque d’une aide apportée par un modèle d’affaires éprouvé vous assurant de travailler avec un leader
du domaine disposant de l’expérience et la stabilité.

G.E.M Ménage vous offre l’opportunité de travailler pendant la journée de lundi a vendredi .

G.E.M Vous propose des contrats d’entretien ménager avec
des horaires souples et un revenu garanti.

Pour les personnes libres,les nouveaux arrivants ou les sans-emplois G.E.M peuit favoriser
votre accès au marché du travail !

G.E.M vous propose des contrats stables et rémunérateurs!

Dans le secteur résidentiel idéal plur unn couple, ou un homme seul dans le
secteur commercial
Vous débuter des maintenant

Des techniques et méthodes de travail éprouvées.
Une aide à la constitution ou à l’enregistrement
dee leur entreprise.
Des territoires d’exercice protégés.
Entreprise clés en main.
Un garantie qui protège votre investissement

Exigences de l’entrée dde notre réseau :
Les demandes sont examinées attentivement et une enquête relative à la candidature est menée.

Les candidatrs doivent passer une entrevue de sélection.
Avant tout début d’activité, les candidats doivent assister à des sessions de formation.

Au G.E.M. nous nous assurons que nos franchisés
puissent offrir à leurs clients un service professionnel d’une qualité
supérieure à celle de la concurrence.
Franchise disponible au résidentiel et commercial

N’hésitez ppas à nous contacter
469 Jean-Talon Ouest Suire # 222
Montreal QC
gemmenage.net
gemmenage.com

femme de ménage Montreal, (URL) - 25-08-’17 01:24
Ramonita

service de femme de ménage
Professionnelle de l’entretien, notre dynamique entreprise saura réaliser pour vous l’ensemble des travaux ménagers.

G.E.M. s’engage sur une prestation de qualité !
Notre équipe de spécialistes chevronnés accompliura un travail à la fois soigné, rapide
et économique.
De plus, noius utilisons exclusivement des produits écologiques et hasutement performants,
issus des toutes dernières technologies.
La vie moderne véhicule aussi de lourdes menaces. D’apparence inoffensive,
meubles, appareils ménagers, matériaux de construction, jouets
ou objets familiers peuvent dégager dess phtalates
ou autres redoutables composés chimiques.
entretien ménager résidentiel.G.E.M votre unique intervenant qui pourra assurer tout au long de l’année la continuité
d’un servvice de haute qualité et à la carte !
Entretien ménager résidentiel, Entretien ménager commercial,
Grand ménage résidentiel et commercial, Lavage dee Vitres, Lavage de tapis, Décapage et Cirage de planchers et Plus.

Franchise de Nettoyage Résidentiel ett Commercial, service de fwmme de ménage ,entretien ménager commercial,entretien ménager commercial, ménage résidentiel, service
d’entretien ménager montréal
Nous ajdons les personnes désireuses d’être propriétaires d’entreprises
prospères à devenir des professionnels du nettoyage
commercial eet de la maintenance. En rejoignant notre réseau d’entreprises, vous
bénéficierez d’un avantage concurrentiel ainsi qque d’une
aide apportée par un modèle d’affaires éprouvé vous
assurant dde travailler avec un leader du domaine disposant de l’expérience et la
stabilité.
Vous disiez augmentez vos revenus afin d’améliorer votre quotidien ?

Faites Appel a G.E.M Ménage!service de femme de ménage ,entretien ménager
commercial,entretien ménager commercial, ménage
résidentiel, service d’entretien ménager montréal, service de femme de ménage ,entretien ménager commercial,entretien ménager commercial, ménage résidentiel, srvice
d’entretien ménager montréal
Franchises de Nettoyage Résidentiel et Commercial disponible Partout A
Montréal ,Rive Nord et Rive Sud.

Finanement Sans Intérêt par G.E.M .
Un dépôt est obligatoire

Un Investissement de 24 000$ Vous Rapporte (4800$ et plus
de Revenuss par Mois)!

Matériel et formation fourni

Nouss aidons les persnnes désireuses d’être propriétaires d’entreprises prospères
à devenir des professionnels du nettoyage commercial et de la maintenance.

En rejoignant notre réseau d’entreprises, vous bénéficierez d’un avantage concurrentiel ainsi que d’une aide apportée par un modèle d’affaires éprouvévous assurant de travailler avec unn leadser du domaine disposant de l’expérienceet la stabilité.

G.E.M Ménage vous offre l’opportunité de travailler pendant la
journée dde lundi a vendredi .

G.E.M Vous propose des contrats d’entretien ménager avec des horaires souples ett un revenu
garanti.

Pour les personnes libres,les nouveaux arrivants ou les sans-emplois G.E.M peut favorizer votre accès au marché du travail !

G.E.M vous propose des contrats stables et rémunérateurs!

Danns le secteur résidentiel idéal pour un couple,ouun hommme seul dans le secteur
commercial
Vous débuter des maintenant

Dees techniques et méthodes de travail éprouvées.
Une ajde à la constitution ou à l’enregistrement de leur entreprise.

Des territooires d’exercice protégés.
Entreprise clés en main.
Un garantie qui protège votre investissement

Exigences de l’entrée de notre réseau :
Les demandes sonjt examinées attentivement et une enquête relative à la caandidature est menée.

Les candidats doivent passsr une entrevue de sélection.
Avant tout début d’activité, les candidats doivent assister à dees sessions de formation.

Au G.E.M. nous nouhs assurons que nos franchisés puissent offrir à leurs clients un service professionnel d’une qualité supérieure à celle dde la concurrence.

Franchise disponible aau résidentiel et commercial

N’hésitez pas à nous contacter
469 Jean-Talon Oudst Suite # 222
Montreal QC
gemmenage.net
gemmenage.com

Ramonita, (URL) - 25-08-’17 03:46
(optional field)
(optional field)
为阻止垃圾广告, 请在提交评论前, 回答一个简单问题(Please answer an simple question)
Remember personal info?
Notify
Small print: All html tags except <b> and <i> will be removed from your comment. You can make links by just typing the url or mail-address.