From owner-freebsd-current@FreeBSD.ORG Fri Jan 21 19:05:48 2005 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2018816A4CE for ; Fri, 21 Jan 2005 19:05:48 +0000 (GMT) Received: from critter.freebsd.dk (f170.freebsd.dk [212.242.86.170]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5223043D2D for ; Fri, 21 Jan 2005 19:05:47 +0000 (GMT) (envelope-from phk@critter.freebsd.dk) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.13.1/8.13.1) with ESMTP id j0LJ5jO2034098; Fri, 21 Jan 2005 20:05:45 +0100 (CET) (envelope-from phk@critter.freebsd.dk) To: Chuck Swiger From: "Poul-Henning Kamp" In-Reply-To: Your message of "Fri, 21 Jan 2005 14:01:48 EST." <41F1519C.1090600@mac.com> Date: Fri, 21 Jan 2005 20:05:45 +0100 Message-ID: <34097.1106334345@critter.freebsd.dk> Sender: phk@critter.freebsd.dk cc: current@freebsd.org Subject: Re: Anybody involved with ISO C standardization ? X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Jan 2005 19:05:48 -0000 In message <41F1519C.1090600@mac.com>, Chuck Swiger writes: >Poul-Henning Kamp wrote: >> In message <41F14659.8040003@mac.com>, Chuck Swiger writes: >[ ... ] >> Resolution of 2 nanoseconds. >> >> To get seconds you have to do a 64 bit divide by 500000000 ? >> >> Anyone here heard about binary computers ? >> >> Binary fractions please, that we we can simply shift way the bits >> we don't want: >> >> seconds = longtime >> 29; >> >> (For some value of 29.) > >Indeed. Some clever person might decide to power of two which was a multiple >of 8 or 16 or so, so that you don't even have to shift bits, and you end up >with something that resembles (struct timeval). An integral timer with a >resolution of 1 tick = 1 second has a lot going right for it. The problem is that if you use 32 bits, then 64 bits don't stretch far enough, and if you use 24 bits you don't get enough resolution. My personal preference would be struct { signed 64+ bits: integer part. unsigned 32+ bits: fraction part. } -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence.