From ba424f61a038d5f1a7ed8a84ed461f4d5cf67283 Mon Sep 17 00:00:00 2001 From: dkf Date: Thu, 10 Feb 2005 09:32:37 +0000 Subject: More consistency. [Bug 1117017] --- ChangeLog | 5 +++++ doc/binary.n | 16 ++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index c5eb617..a83b16f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-02-10 Donal K. Fellows + + * doc/binary.n: Made the documentation of sign bit masking and + [binary scan] consistent. [Bug 1117017] + 2005-02-08 David N. Welton * doc/CrtChannel.3: Typo: return->returns. diff --git a/doc/binary.n b/doc/binary.n index 51e9bab..ab98224 100644 --- a/doc/binary.n +++ b/doc/binary.n @@ -4,7 +4,7 @@ '\" See the file "license.terms" for information on usage and redistribution '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. '\" -'\" RCS: @(#) $Id: binary.n,v 1.24 2004/11/12 11:03:16 dkf Exp $ +'\" RCS: @(#) $Id: binary.n,v 1.25 2005/02/10 09:33:01 dkf Exp $ '\" .so man.macros .TH binary n 8.0 Tcl "Tcl Built-In Commands" @@ -431,7 +431,7 @@ If you want to produce an unsigned value, then you can mask the return value to the desired size. For example, to produce an unsigned short value: .CS -set val [expr {$val & 0xFFFF}]; \fI# val == 0x8000\fR +set val [expr { $val & 0xFFFF }]; \fI# val == 0x8000\fR .CE .PP Each type-count pair moves an imaginary cursor through the binary data, @@ -529,7 +529,7 @@ stored in \fIvar2\fR. Note that the integers returned are signed, but they can be converted to unsigned 8-bit quantities using an expression like: .CS -expr { ( $num + 0x100 ) % 0x100 } +set num [expr { $num & 0xff }] .CE .RE .IP \fBs\fR 5 @@ -548,7 +548,7 @@ stored in \fIvar2\fR. Note that the integers returned are signed, but they can be converted to unsigned 16-bit quantities using an expression like: .CS -expr { ( $num + 0x10000 ) % 0x10000 } +set num [expr { $num & 0xffff }] .CE .RE .IP \fBS\fR 5 @@ -583,8 +583,12 @@ set str \\x05\\x00\\x00\\x00\\x07\\x00\\x00\\x00\\xf0\\xff\\xff\\xff \fBbinary scan\fR $str i2i* var1 var2 .CE will return \fB2\fR with \fB5 7\fR stored in \fIvar1\fR and \fB-16\fR -stored in \fIvar2\fR. Note that the integers returned are signed and -cannot be represented by Tcl as unsigned values. +stored in \fIvar2\fR. Note that the integers returned are signed, but +they can be converted to unsigned 32-bit quantities using an expression +like: +.CS +set num [expr { $num & 0xffffffff }] +.CE .RE .IP \fBI\fR 5 This form is the same as \fBI\fR except that the data is interpreted -- cgit v0.12